From juanlu001 en gmail.com Wed Jan 2 11:40:19 2013 From: juanlu001 en gmail.com (=?ISO-8859-1?Q?Juan_Luis_Cano_Rodr=EDguez?=) Date: Wed, 2 Jan 2013 11:40:19 +0100 Subject: [Python-es] Informe final PyCon Argentina 2012 In-Reply-To: References: Message-ID: Muchísimas gracias Juan (lo repito en público). El documento es excelente y muy exhaustivo y seguro que los que queremos organizar eventos en el futuro sacaremos muchas enseñanzas de él. Creo que pediré una copia impresa y le pondré una bonita encuadernación :P Un saludo y feliz año a todos 2012/12/31 Juan BC > En el siguiente enlace se encuentra disponible el informe final o > post-mortem de la conferencia PyCon Argentina 2012 > > > https://pyconar20012-postmortem.readthedocs.org > > > Solamente los capítulos "Opiniones de speakers internacionales" y > "Opiniones de sponsors" pueden llegar a modificarse en futuro (de > todas maneras el numero de versión representa la fecha y hora de > creación del documento) > > > Disclaimer del Balance: > > El balance aun no se encuentra disponible por que aun el banco y SoLAr > se encuentran tramitando un cheque (ya van 3 meses) provenientes del > extranjero. Se provee 15 días mas de trámites. > > > > -- > Juan B Cabral > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From cencalada en ucacue.edu.ec Wed Jan 2 16:29:11 2013 From: cencalada en ucacue.edu.ec (Ing. Carlos Encalada L.) Date: Wed, 2 Jan 2013 15:29:11 +0000 Subject: [Python-es] Informe final PyCon Argentina 2012 In-Reply-To: References: Message-ID: <82BCC6DF42130844BABEEE6DBFA51A801A2B94F6@BL2PRD0411MB409.namprd04.prod.outlook.com> Muy agradecido por la información Juan y un feliz año nuevo para todos. De: Python-es [mailto:python-es-bounces+cencalada=ucacue.edu.ec en python.org] En nombre de Juan Luis Cano Rodríguez Enviado el: miércoles, 02 de enero de 2013 5:40 Para: La lista de python en castellano Asunto: Re: [Python-es] Informe final PyCon Argentina 2012 Muchísimas gracias Juan (lo repito en público). El documento es excelente y muy exhaustivo y seguro que los que queremos organizar eventos en el futuro sacaremos muchas enseñanzas de él. Creo que pediré una copia impresa y le pondré una bonita encuadernación :P Un saludo y feliz año a todos 2012/12/31 Juan BC > En el siguiente enlace se encuentra disponible el informe final o post-mortem de la conferencia PyCon Argentina 2012 https://pyconar20012-postmortem.readthedocs.org Solamente los capítulos "Opiniones de speakers internacionales" y "Opiniones de sponsors" pueden llegar a modificarse en futuro (de todas maneras el numero de versión representa la fecha y hora de creación del documento) Disclaimer del Balance: El balance aun no se encuentra disponible por que aun el banco y SoLAr se encuentran tramitando un cheque (ya van 3 meses) provenientes del extranjero. Se provee 15 días mas de trámites. -- Juan B Cabral _______________________________________________ Python-es mailing list Python-es en python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ailurus.fulgens en hotmail.com Thu Jan 3 01:22:21 2013 From: ailurus.fulgens en hotmail.com (xiao xiong mao panda rojo) Date: Wed, 2 Jan 2013 19:22:21 -0500 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion Message-ID: hola a tod en s alguno tiene un algoritmo de suma de comprobación, es decir hash como CRC MD5 SHA-1 paso a paso, sin usar librerías, mejor si es en nivel binario en python o en cualquier lenguaje no tiene que ser súper seguro, solo es un ejemplo estoy trabajando en un pequeño proyecto de verano, intento realizar un hash en VHDL pero no conozco el procedimiento para obtener el hash necesito hacerlo funcionar sin señal de reloj, esto no significa que el numero de pasos en python deba ser pequeño, eso no es problema ojala alguno pueda ayudarme con el algoritmo y luego intentare implementarlo en un circuito con vhdl si logro hacerlo funcionar lo publico y les mando un tutorial para que puedan probarlo facilmente gracias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lastvnm en gmail.com Thu Jan 3 01:49:42 2013 From: lastvnm en gmail.com (Hiko hitokiri) Date: Wed, 2 Jan 2013 18:49:42 -0600 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion In-Reply-To: References: Message-ID: están duras las tareas escolares no El 2 de enero de 2013 18:22, xiao xiong mao panda rojo < ailurus.fulgens en hotmail.com> escribió: > hola a tod en s > alguno tiene un algoritmo de suma de comprobación, es decir hash > como CRC MD5 SHA-1 > paso a paso, sin usar librerías, mejor si es en nivel binario > en python o en cualquier lenguaje > no tiene que ser súper seguro, solo es un ejemplo > estoy trabajando en un pequeño proyecto de verano, intento realizar un > hash en VHDL > pero no conozco el procedimiento para obtener el hash > necesito hacerlo funcionar sin señal de reloj, esto no significa que el > numero de pasos en python deba ser pequeño, eso no es problema > ojala alguno pueda ayudarme con el algoritmo y luego intentare > implementarlo en un circuito con vhdl > si logro hacerlo funcionar lo publico y les mando un tutorial para que > puedan probarlo facilmente > gracias > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- hiko_hitokiri no pidas que el mundo te trate de una manera cuando tu no le das el mismo trato a los demás ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From carlos.zun en gmail.com Thu Jan 3 05:05:26 2013 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Wed, 2 Jan 2013 23:05:26 -0500 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion In-Reply-To: References: Message-ID: 2013/1/2 xiao xiong mao panda rojo : > hola a tod en s > alguno tiene un algoritmo de suma de comprobación, es decir hash > como CRC MD5 SHA-1 > paso a paso, sin usar librerías, mejor si es en nivel binario > en python o en cualquier lenguaje > no tiene que ser súper seguro, solo es un ejemplo > estoy trabajando en un pequeño proyecto de verano, intento realizar un hash > en VHDL > pero no conozco el procedimiento para obtener el hash > necesito hacerlo funcionar sin señal de reloj, esto no significa que el > numero de pasos en python deba ser pequeño, eso no es problema > ojala alguno pueda ayudarme con el algoritmo y luego intentare implementarlo > en un circuito con vhdl > si logro hacerlo funcionar lo publico y les mando un tutorial para que > puedan probarlo facilmente > gracias > Te refieres a que quieres el algoritmo? solo mira en la wikipedia https://en.wikipedia.org/wiki/Md5 Y si quieres una mplementación, pues Rosetta tiene cientos http://rosettacode.org/wiki/MD5/Implementation -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. From ailurus.fulgens en hotmail.com Thu Jan 3 06:22:49 2013 From: ailurus.fulgens en hotmail.com (xiao xiong mao panda rojo) Date: Thu, 3 Jan 2013 00:22:49 -0500 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion In-Reply-To: References: , Message-ID: >>From: lastvnm en gmail.com >>Date: Wed, 2 Jan 2013 18:49:42 -0600 >>To: python-es en python.org >>Subject: Re: [Python-es] tienen algun algoritmo de suma de comprobacion >> >>están duras las tareas escolares no no es una tarea. seria un poco raro que alguien tenga clases en esta época del año en sur america lo hago para aprender vhdl no estoy pidiendo que me hagan el diseño en vhdl solo necesito algún algoritmo sencillo para tratar de implementarlo en un circuito cualquier tipo de hash esta bien :) ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ailurus.fulgens en hotmail.com Thu Jan 3 06:32:23 2013 From: ailurus.fulgens en hotmail.com (xiao xiong mao panda rojo) Date: Thu, 3 Jan 2013 00:32:23 -0500 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion In-Reply-To: References: , Message-ID: > From: carlos.zun en gmail.com > Date: Wed, 2 Jan 2013 23:05:26 -0500 > To: python-es en python.org > Subject: Re: [Python-es] tienen algun algoritmo de suma de comprobacion > > 2013/1/2 xiao xiong mao panda rojo : > > hola a tod en s > > alguno tiene un algoritmo de suma de comprobación, es decir hash > > como CRC MD5 SHA-1 > > paso a paso, sin usar librerías, mejor si es en nivel binario > > en python o en cualquier lenguaje > > no tiene que ser súper seguro, solo es un ejemplo > > estoy trabajando en un pequeño proyecto de verano, intento realizar un hash > > en VHDL > > pero no conozco el procedimiento para obtener el hash > > necesito hacerlo funcionar sin señal de reloj, esto no significa que el > > numero de pasos en python deba ser pequeño, eso no es problema > > ojala alguno pueda ayudarme con el algoritmo y luego intentare implementarlo > > en un circuito con vhdl > > si logro hacerlo funcionar lo publico y les mando un tutorial para que > > puedan probarlo facilmente > > gracias > > > > Te refieres a que quieres el algoritmo? solo mira en la wikipedia > https://en.wikipedia.org/wiki/Md5 > > Y si quieres una mplementación, pues Rosetta tiene cientos > http://rosettacode.org/wiki/MD5/Implementation > > -- > A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos > de leer manuales. > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ muchas gracias carlos.zun. ahora veo por k no encontraba ningún ejemplo apenas lo he visto y parece bastante complicado sera peor aun con vhdl parece k con md5 no podra ser. tendré k buscar algo mas simple. igualmente muchas gracias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lgmerino en yahoo.com Thu Jan 3 09:08:42 2013 From: lgmerino en yahoo.com (Luis Garcia Merino) Date: Thu, 3 Jan 2013 08:08:42 +0000 (GMT) Subject: [Python-es] [OFERTA LABORAL] Programador Python/Django Message-ID: <1357200522.39849.YahooMailNeo@web171205.mail.ir2.yahoo.com> Buenos días, por si resultara de interés para alguien. Se busca programador Python/Django con las siguientes características: .Requisitos mínimos: - Experiencia demostrable en desarrollo de sistemas de información en Python/Django, mínimo 1 año. - Autodisciplina para el tele-trabajo. - Capacidad para facturar. Conocimientos deseables: - Experiencia en south, Pisa (xhtml2pdf), dajaxice, reversion, private_files y aplicaciones multilenguaje en Django. - Experiencia en alguna herramienta de control de versiones (preferiblemente Mercurial). - Experiencia en jQuery. - Conocimiento de técnicas de desarrollo ágiles (preferiblemente Scrum). Más información sobre la oferta en [http://vilamatica.wordpress.com/2012/12/22/buscamos-programador-python-django-2/]. Dudas y envío de CVs a [info en vilamatica.com]. Un saludo. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From monobot.soft en gmail.com Thu Jan 3 18:36:57 2013 From: monobot.soft en gmail.com (monoBOT) Date: Thu, 3 Jan 2013 17:36:57 +0000 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion In-Reply-To: References: Message-ID: http://stackoverflow.com/questions/3431825/python-generating-a-md5-checksum-of-a-file El 3 de enero de 2013 05:32, xiao xiong mao panda rojo < ailurus.fulgens en hotmail.com> escribió: > > > > From: carlos.zun en gmail.com > > Date: Wed, 2 Jan 2013 23:05:26 -0500 > > > To: python-es en python.org > > Subject: Re: [Python-es] tienen algun algoritmo de suma de comprobacion > > > > 2013/1/2 xiao xiong mao panda rojo : > > > hola a tod en s > > > alguno tiene un algoritmo de suma de comprobación, es decir hash > > > como CRC MD5 SHA-1 > > > paso a paso, sin usar librerías, mejor si es en nivel binario > > > en python o en cualquier lenguaje > > > no tiene que ser súper seguro, solo es un ejemplo > > > estoy trabajando en un pequeño proyecto de verano, intento realizar un > hash > > > en VHDL > > > pero no conozco el procedimiento para obtener el hash > > > necesito hacerlo funcionar sin señal de reloj, esto no significa que el > > > numero de pasos en python deba ser pequeño, eso no es problema > > > ojala alguno pueda ayudarme con el algoritmo y luego intentare > implementarlo > > > en un circuito con vhdl > > > si logro hacerlo funcionar lo publico y les mando un tutorial para que > > > puedan probarlo facilmente > > > gracias > > > > > > > Te refieres a que quieres el algoritmo? solo mira en la wikipedia > > https://en.wikipedia.org/wiki/Md5 > > > > Y si quieres una mplementación, pues Rosetta tiene cientos > > http://rosettacode.org/wiki/MD5/Implementation > > > > -- > > A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos > > de leer manuales. > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > muchas gracias carlos.zun. ahora veo por k no encontraba ningún ejemplo > apenas lo he visto y parece bastante complicado > sera peor aun con vhdl > parece k con md5 no podra ser. tendré k buscar algo mas simple. > igualmente muchas gracias > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alexis.roda.villalonga en gmail.com Thu Jan 3 19:54:54 2013 From: alexis.roda.villalonga en gmail.com (Alexis Roda) Date: Thu, 03 Jan 2013 19:54:54 +0100 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion In-Reply-To: References: , Message-ID: <50E5D3FE.7090200@gmail.com> Al 03/01/13 06:32, En/na xiao xiong mao panda rojo ha escrit: > > > > > Te refieres a que quieres el algoritmo? solo mira en la wikipedia > > https://en.wikipedia.org/wiki/Md5 > > > > Y si quieres una mplementación, pues Rosetta tiene cientos > > http://rosettacode.org/wiki/MD5/Implementation > > > > muchas gracias carlos.zun. ahora veo por k no encontraba ningún ejemplo > apenas lo he visto y parece bastante complicado > sera peor aun con vhdl > parece k con md5 no podra ser. tendré k buscar algo mas simple. > igualmente muchas gracias Tal vez http://en.wikipedia.org/wiki/Cyclic_redundancy_check From jbc.develop en gmail.com Fri Jan 4 03:50:50 2013 From: jbc.develop en gmail.com (Juan BC) Date: Thu, 3 Jan 2013 23:50:50 -0300 Subject: [Python-es] PET #6 OUT! Message-ID: PET #6 OUT! Se publico en versión PDF el #6 de la revista Python Entre Todos. Este mismo número se distribuyo en PyConArgentina 2012. http://revista.python.org.ar/ -- Juan B Cabral From jbc.develop en gmail.com Fri Jan 4 22:10:13 2013 From: jbc.develop en gmail.com (Juan BC) Date: Fri, 4 Jan 2013 18:10:13 -0300 Subject: [Python-es] Videos de PyCon Argentina 2012 Message-ID: FYI http://www.youtube.com/playlist?list=PLkuS0waF8krjwcRHzSJMq_nA67mCFi24T Incluye track científico y track extremo. Todavía quedan por subir las charlas relámpago. En la página principal quedaron todos los enlaces: http://ar.pycon.org/2012 Por cierto, todos los videos son CC, si alguno los quiere editar, mejorar o subtitular, simplemente avisennos. -- Juan B Cabral From pjmakey2 en gmail.com Sat Jan 5 12:21:10 2013 From: pjmakey2 en gmail.com (peter) Date: Sat, 05 Jan 2013 08:21:10 -0300 Subject: [Python-es] Videos de PyCon Argentina 2012 In-Reply-To: References: Message-ID: <50E80CA6.1080307@gmail.com> On 01/04/2013 06:10 PM, Juan BC wrote: > FYI > > > http://www.youtube.com/playlist?list=PLkuS0waF8krjwcRHzSJMq_nA67mCFi24T > > Incluye track científico y track extremo. > > Todavía quedan por subir las charlas relámpago. > > En la página principal quedaron todos los enlaces: > > http://ar.pycon.org/2012 > > Por cierto, todos los videos son CC, si alguno los quiere editar, > mejorar o subtitular, simplemente avisennos. > > > > -- > Juan B Cabral > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ exelente aporte. muchas gracias From mlacunza en gmail.com Sun Jan 6 15:11:08 2013 From: mlacunza en gmail.com (Mario Lacunza) Date: Sun, 06 Jan 2013 09:11:08 -0500 Subject: [Python-es] Web Framework Message-ID: <50E985FC.3090903@gmail.com> Hola, queria preguntarles sobre un framework Python recomendable para: * Website donde el diseño grafico no será lo principal, es decir un diseño minimalista muy sencillo. * el website se dedicara a realizar complejas operaciones estadisticas segun las consultas de los users, contra una base de datos y presentara los resultados. Estaba pensando en Django pero no se si dado lo "simple" de la operativa del website requiera de todo su poder o tal vez uno mas sencillo que me permita montar el website rapidamente concentrandome en las tareas de programacion. Gracias! -- Saludos / Best regards Mario Lacunza Email:: mlacunza en gmail.com Personal Website:: http://www.lacunza.biz/ OpenOffice.org Perú:: http://openoffice-peru.com/ Hosting:: http://mlv-host.com/ Mascotas Perdidas:: http://mascotas-perdidas.com/ Google Talk / Y! messenger / Skype: mlacunzav MSN: mlacunzav en hotmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From maigfrga en gmail.com Sun Jan 6 15:15:37 2013 From: maigfrga en gmail.com (Manuel Ignacio Franco Galeano) Date: Sun, 6 Jan 2013 15:15:37 +0100 Subject: [Python-es] Web Framework In-Reply-To: <50E985FC.3090903@gmail.com> References: <50E985FC.3090903@gmail.com> Message-ID: Hola, puedes usar flask http://flask.pocoo.org/ con sqlalchemy http://www.sqlalchemy.org/ si las consultas son muy complejas o pesadas te recomiendo que construyas el sql tu mismo El 6 de enero de 2013 15:11, Mario Lacunza escribió: > Hola, > > queria preguntarles sobre un framework Python recomendable para: > > > - Website donde el diseño grafico no será lo principal, es decir un > diseño minimalista muy sencillo. > - el website se dedicara a realizar complejas operaciones estadisticas > segun las consultas de los users, contra una base de datos y presentara los > resultados. > > Estaba pensando en Django pero no se si dado lo "simple" de la operativa > del website requiera de todo su poder o tal vez uno mas sencillo que me > permita montar el website rapidamente concentrandome en las tareas de > programacion. > > Gracias! > > -- > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/ > OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From reroes799 en gmail.com Sun Jan 6 15:15:45 2013 From: reroes799 en gmail.com (=?ISO-8859-1?Q?Ren=E9_Rolando_Elizalde_Solano?=) Date: Sun, 6 Jan 2013 09:15:45 -0500 Subject: [Python-es] Web Framework In-Reply-To: <50E985FC.3090903@gmail.com> References: <50E985FC.3090903@gmail.com> Message-ID: django. El 06/01/2013 09:12, "Mario Lacunza" escribió: > Hola, > > queria preguntarles sobre un framework Python recomendable para: > > > - Website donde el diseño grafico no será lo principal, es decir un > diseño minimalista muy sencillo. > - el website se dedicara a realizar complejas operaciones estadisticas > segun las consultas de los users, contra una base de datos y presentara los > resultados. > > Estaba pensando en Django pero no se si dado lo "simple" de la operativa > del website requiera de todo su poder o tal vez uno mas sencillo que me > permita montar el website rapidamente concentrandome en las tareas de > programacion. > > Gracias! > > -- > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/ > OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alfonsodg en gmail.com Sun Jan 6 15:34:27 2013 From: alfonsodg en gmail.com (Alfonso de la Guarda) Date: Sun, 6 Jan 2013 09:34:27 -0500 Subject: [Python-es] Web Framework In-Reply-To: <50E985FC.3090903@gmail.com> References: <50E985FC.3090903@gmail.com> Message-ID: Hola, Pues web2py reune todo lo que indicas Saludos, -------------------------------- Alfonso de la Guarda Twitter: @alfonsodg Redes sociales: alfonsodg Telef. 991935157 1024D/B23B24A4 5469 ED92 75A3 BBDB FD6B 58A5 54A1 851D B23B 24A4 2013/1/6 Mario Lacunza : > Hola, > > queria preguntarles sobre un framework Python recomendable para: > > Website donde el diseño grafico no será lo principal, es decir un diseño > minimalista muy sencillo. > el website se dedicara a realizar complejas operaciones estadisticas segun > las consultas de los users, contra una base de datos y presentara los > resultados. > > Estaba pensando en Django pero no se si dado lo "simple" de la operativa del > website requiera de todo su poder o tal vez uno mas sencillo que me permita > montar el website rapidamente concentrandome en las tareas de programacion. > > Gracias! > > -- > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/ > OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > From fvillarroel en yahoo.com Sun Jan 6 16:30:23 2013 From: fvillarroel en yahoo.com (Fernando Villarroel) Date: Sun, 6 Jan 2013 12:30:23 -0300 Subject: [Python-es] Web Framework In-Reply-To: <50E985FC.3090903@gmail.com> References: <50E985FC.3090903@gmail.com> Message-ID: <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> Te recomiendo 100% web2py su curva de aprendizaje es mínimo y es muy potente. Enviado desde mi iPhone El 06-01-2013, a las 11:11, Mario Lacunza escribió: > Hola, > > queria preguntarles sobre un framework Python recomendable para: > > Website donde el diseño grafico no será lo principal, es decir un diseño minimalista muy sencillo. > el website se dedicara a realizar complejas operaciones estadisticas segun las consultas de los users, contra una base de datos y presentara los resultados. > Estaba pensando en Django pero no se si dado lo "simple" de la operativa del website requiera de todo su poder o tal vez uno mas sencillo que me permita montar el website rapidamente concentrandome en las tareas de programacion. > Gracias! > -- > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/ > OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marioencalada en gmail.com Sun Jan 6 21:17:51 2013 From: marioencalada en gmail.com (Mario Alberto Encalada Cavada) Date: Sun, 6 Jan 2013 17:17:51 -0300 Subject: [Python-es] Web Framework In-Reply-To: <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> Message-ID: Más sencillo aun es webpy ..... http://webpy.org/ y no web2py Más minimalistq ue esto no creo. saludos El 6 de enero de 2013 12:30, Fernando Villarroel escribió: > Te recomiendo 100% web2py su curva de aprendizaje es mínimo y es muy > potente. > > Enviado desde mi iPhone > > El 06-01-2013, a las 11:11, Mario Lacunza escribió: > > Hola, > > queria preguntarles sobre un framework Python recomendable para: > > > - Website donde el diseño grafico no será lo principal, es decir un > diseño minimalista muy sencillo. > - el website se dedicara a realizar complejas operaciones estadisticas > segun las consultas de los users, contra una base de datos y presentara los > resultados. > > Estaba pensando en Django pero no se si dado lo "simple" de la operativa > del website requiera de todo su poder o tal vez uno mas sencillo que me > permita montar el website rapidamente concentrandome en las tareas de > programacion. > > Gracias! > > -- > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > > _______________________________________________ > > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ibarona en gmail.com Sun Jan 6 21:56:32 2013 From: ibarona en gmail.com (=?ISO-8859-1?Q?Isaac_Barona_Mart=EDnez?=) Date: Sun, 6 Jan 2013 21:56:32 +0100 Subject: [Python-es] Web Framework In-Reply-To: References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> Message-ID: Otra recomendación para web2py. Saludos, Isaac 2013/1/6 Mario Alberto Encalada Cavada > Más sencillo aun es webpy ..... http://webpy.org/ y no web2py > > Más minimalistq ue esto no creo. > > saludos > > > El 6 de enero de 2013 12:30, Fernando Villarroel escribió: > > Te recomiendo 100% web2py su curva de aprendizaje es mínimo y es muy >> potente. >> >> Enviado desde mi iPhone >> >> El 06-01-2013, a las 11:11, Mario Lacunza escribió: >> >> Hola, >> >> queria preguntarles sobre un framework Python recomendable para: >> >> >> - Website donde el diseño grafico no será lo principal, es decir un >> diseño minimalista muy sencillo. >> - el website se dedicara a realizar complejas operaciones >> estadisticas segun las consultas de los users, contra una base de datos y >> presentara los resultados. >> >> Estaba pensando en Django pero no se si dado lo "simple" de la operativa >> del website requiera de todo su poder o tal vez uno mas sencillo que me >> permita montar el website rapidamente concentrandome en las tareas de >> programacion. >> >> Gracias! >> >> -- >> >> Saludos / Best regards >> >> Mario Lacunza >> Email:: mlacunza en gmail.com >> Personal Website:: http://www.lacunza.biz/OpenOffice.org Perú:: http://openoffice-peru.com/ >> Hosting:: http://mlv-host.com/ >> Mascotas Perdidas:: http://mascotas-perdidas.com/ >> Google Talk / Y! messenger / Skype: mlacunzav >> MSN: mlacunzav en hotmail.com >> >> _______________________________________________ >> >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- "El conocimiento, si es compartido, se convierte en sabiduria" ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ailurus.fulgens en hotmail.com Mon Jan 7 22:07:08 2013 From: ailurus.fulgens en hotmail.com (xiao xiong mao panda rojo) Date: Mon, 7 Jan 2013 16:07:08 -0500 Subject: [Python-es] tienen algun algoritmo de suma de comprobacion In-Reply-To: <50E5D3FE.7090200@gmail.com> References: , , , , <50E5D3FE.7090200@gmail.com> Message-ID: en caso que este interesados estos son los diseños que encontre.se que es una lista de python así k dejo esto aquihttp://opencores.org/project,nfhc sha1 sha512 sha256http://opencores.org/project,ultimate_crc crchttp://opencores.org/project,systemcmd5 md5cumplido > Date: Thu, 3 Jan 2013 19:54:54 +0100 > From: alexis.roda.villalonga en gmail.com > To: python-es en python.org > Subject: Re: [Python-es] tienen algun algoritmo de suma de comprobacion > > Al 03/01/13 06:32, En/na xiao xiong mao panda rojo ha escrit: > > > > > > > > Te refieres a que quieres el algoritmo? solo mira en la wikipedia > > > https://en.wikipedia.org/wiki/Md5 > > > > > > Y si quieres una mplementación, pues Rosetta tiene cientos > > > http://rosettacode.org/wiki/MD5/Implementation > > > > > > > muchas gracias carlos.zun. ahora veo por k no encontraba ningún ejemplo > > apenas lo he visto y parece bastante complicado > > sera peor aun con vhdl > > parece k con md5 no podra ser. tendré k buscar algo mas simple. > > igualmente muchas gracias > > Tal vez http://en.wikipedia.org/wiki/Cyclic_redundancy_check > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From mlacunza en gmail.com Tue Jan 8 14:25:07 2013 From: mlacunza en gmail.com (Mario Lacunza) Date: Tue, 08 Jan 2013 08:25:07 -0500 Subject: [Python-es] Web Framework In-Reply-To: References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> Message-ID: <50EC1E33.10104@gmail.com> Muchas gracias a todos por sus respuestas! Saludos / Best regards Mario Lacunza Email:: mlacunza en gmail.com Personal Website:: http://www.lacunza.biz/ OpenOffice.org Perú:: http://openoffice-peru.com/ Hosting:: http://mlv-host.com/ Mascotas Perdidas:: http://mascotas-perdidas.com/ Google Talk / Y! messenger / Skype: mlacunzav MSN: mlacunzav en hotmail.com From jackgris2 en gmail.com Tue Jan 8 14:37:37 2013 From: jackgris2 en gmail.com (Gabriel Pozo) Date: Tue, 8 Jan 2013 10:37:37 -0300 Subject: [Python-es] Web Framework In-Reply-To: <50EC1E33.10104@gmail.com> References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> <50EC1E33.10104@gmail.com> Message-ID: Y ya sabes cual va a ser tu elección? 2013/1/8 Mario Lacunza > Muchas gracias a todos por sus respuestas! > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/ > OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > > > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > -- *Saludos, Gabriel* http://aprendiendodeandroidymas.com/ http://culturalibrerosario.org/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From mlacunza en gmail.com Tue Jan 8 14:52:50 2013 From: mlacunza en gmail.com (Mario Lacunza) Date: Tue, 08 Jan 2013 08:52:50 -0500 Subject: [Python-es] Web Framework In-Reply-To: References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> <50EC1E33.10104@gmail.com> Message-ID: <50EC24B2.8060105@gmail.com> Si estoy revisando web2py y webpy Saludos / Best regards Mario Lacunza Email:: mlacunza en gmail.com Personal Website:: http://www.lacunza.biz/ OpenOffice.org Perú:: http://openoffice-peru.com/ Hosting:: http://mlv-host.com/ Mascotas Perdidas:: http://mascotas-perdidas.com/ Google Talk / Y! messenger / Skype: mlacunzav MSN: mlacunzav en hotmail.com El mar 08 ene 2013 08:37:37 PET, Gabriel Pozo escribió: > Y ya sabes cual va a ser tu elección? > > > 2013/1/8 Mario Lacunza > > > Muchas gracias a todos por sus respuestas! > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/ > OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > > > _________________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/__mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.__com/ > > > > > > -- > *Saludos, Gabriel* > > http://aprendiendodeandroidymas.com/ > > > http://culturalibrerosario.org/ From francois.dion en gmail.com Tue Jan 8 15:18:23 2013 From: francois.dion en gmail.com (Francois Dion) Date: Tue, 8 Jan 2013 09:18:23 -0500 Subject: [Python-es] Web Framework In-Reply-To: <50EC24B2.8060105@gmail.com> References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> <50EC1E33.10104@gmail.com> <50EC24B2.8060105@gmail.com> Message-ID: Tengo código web.py en bitbucket, demostrando todo lo básico: http://www.pyptug.org/2012/11/pyptug-november-meeting-hg-repository.html La pagina es en ingles, pero, el código es obvio en cualquier idioma... O si no es, pregúntame. François -- www.pyptug.org - raspberry-python.blogspot.com On Tue, Jan 8, 2013 at 8:52 AM, Mario Lacunza wrote: > Si estoy revisando web2py y webpy > > > > Saludos / Best regards > > Mario Lacunza > Email:: mlacunza en gmail.com > Personal Website:: http://www.lacunza.biz/ > OpenOffice.org Perú:: http://openoffice-peru.com/ > Hosting:: http://mlv-host.com/ > Mascotas Perdidas:: http://mascotas-perdidas.com/ > Google Talk / Y! messenger / Skype: mlacunzav > MSN: mlacunzav en hotmail.com > > > El mar 08 ene 2013 08:37:37 PET, Gabriel Pozo escribió: >> >> Y ya sabes cual va a ser tu elección? >> >> >> 2013/1/8 Mario Lacunza > >> >> >> Muchas gracias a todos por sus respuestas! >> >> Saludos / Best regards >> >> Mario Lacunza >> Email:: mlacunza en gmail.com >> >> Personal Website:: http://www.lacunza.biz/ >> OpenOffice.org Perú:: http://openoffice-peru.com/ >> Hosting:: http://mlv-host.com/ >> Mascotas Perdidas:: http://mascotas-perdidas.com/ >> Google Talk / Y! messenger / Skype: mlacunzav >> MSN: mlacunzav en hotmail.com >> >> >> _________________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/__mailman/listinfo/python-es >> >> FAQ: http://python-es-faq.wikidot.__com/ >> >> >> >> >> >> -- >> *Saludos, Gabriel* >> >> http://aprendiendodeandroidymas.com/ >> >> >> http://culturalibrerosario.org/ > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From fvillarroel en yahoo.com Tue Jan 8 15:54:59 2013 From: fvillarroel en yahoo.com (Fernando Villarroel) Date: Tue, 8 Jan 2013 11:54:59 -0300 Subject: [Python-es] Web Framework In-Reply-To: References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> <50EC1E33.10104@gmail.com> <50EC24B2.8060105@gmail.com> Message-ID: <051EBB75-318F-4C51-BD3B-C836B2C76E2E@yahoo.com> Mario. En tu elección considera el soporte, en tal sentido la lista de web2py es la más activa junto con Django. Desconozco la situación de webpy y flask. Yo uso web2py y es el framework que te recomiendo por lo que te dije anteriormente su curva de aprendizaje es muy suave. Saludos. Enviado desde mi iPhone El 08-01-2013, a las 11:18, Francois Dion escribió: > Tengo código web.py en bitbucket, demostrando todo lo básico: > > http://www.pyptug.org/2012/11/pyptug-november-meeting-hg-repository.html > > La pagina es en ingles, pero, el código es obvio en cualquier > idioma... O si no es, pregúntame. > > François > > -- > www.pyptug.org - raspberry-python.blogspot.com > > On Tue, Jan 8, 2013 at 8:52 AM, Mario Lacunza wrote: >> Si estoy revisando web2py y webpy >> >> >> >> Saludos / Best regards >> >> Mario Lacunza >> Email:: mlacunza en gmail.com >> Personal Website:: http://www.lacunza.biz/ >> OpenOffice.org Perú:: http://openoffice-peru.com/ >> Hosting:: http://mlv-host.com/ >> Mascotas Perdidas:: http://mascotas-perdidas.com/ >> Google Talk / Y! messenger / Skype: mlacunzav >> MSN: mlacunzav en hotmail.com >> >> >> El mar 08 ene 2013 08:37:37 PET, Gabriel Pozo escribió: >>> >>> Y ya sabes cual va a ser tu elección? >>> >>> >>> 2013/1/8 Mario Lacunza > >>> >>> >>> Muchas gracias a todos por sus respuestas! >>> >>> Saludos / Best regards >>> >>> Mario Lacunza >>> Email:: mlacunza en gmail.com >>> >>> Personal Website:: http://www.lacunza.biz/ >>> OpenOffice.org Perú:: http://openoffice-peru.com/ >>> Hosting:: http://mlv-host.com/ >>> Mascotas Perdidas:: http://mascotas-perdidas.com/ >>> Google Talk / Y! messenger / Skype: mlacunzav >>> MSN: mlacunzav en hotmail.com >>> >>> >>> _________________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> http://mail.python.org/__mailman/listinfo/python-es >>> >>> FAQ: http://python-es-faq.wikidot.__com/ >>> >>> >>> >>> >>> >>> -- >>> *Saludos, Gabriel* >>> >>> http://aprendiendodeandroidymas.com/ >>> >>> >>> http://culturalibrerosario.org/ >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From carlos.liebana en factorlibre.com Tue Jan 8 17:23:11 2013 From: carlos.liebana en factorlibre.com (=?ISO-8859-1?Q?Carlos_Li=E9bana?=) Date: Tue, 8 Jan 2013 17:23:11 +0100 Subject: [Python-es] Bolsa de trabajo Python Message-ID: Buenas tardes, Supongo que no sea la mejor manera de estrenarse en la lista, pero estamos buscando un perfil junior con conocimiento de Python (para programación en framework OpenObject/OpenERP) y si alguien me indicara la existencia de un foro apropiado para publicar nuestra oferta, se lo agradecería. Algo específico de Python (Infojobs, Tecnoempleo y demás los conozco ;)...) quiero hacer un primer filtrado de personas que hayan demostrado interés en el lenguaje. Por supuesto, si estuvieras interesado en el trabajo (en Madrid) te puedo dar algún detalle más. Gracias y perdón de antemano por las molestias. -- -------------------------- *CARLOS LIÉBANA ANERO* *Director* | factorlibre.com +34 635 86 67 92 @carlosliebana ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From plobarinas en jcea.es Wed Jan 9 00:15:54 2013 From: plobarinas en jcea.es (=?ISO-8859-1?Q?Pablo_Lobari=F1as?=) Date: Wed, 09 Jan 2013 00:15:54 +0100 Subject: [Python-es] =?iso-8859-1?q?Reuni=F3n_Python-Madrid_Enero_2013?= Message-ID: <50ECA8AA.8060206@jcea.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hola a todos: Un año más y un mes más, el grupo python-madrid se reune para compartir charla, cervecitas y buena compañía. Para aquellos que esteis interesados y podais acercaros, aquí teneis los detalles: http://www.python-madrid.es/post/reunion-enero-2013-python-madrid/ Un saludo. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (Darwin) Comment: GPGTools - http://gpgtools.org iEYEARECAAYFAlDsqKoACgkQnPFBatEMYOfzawCdELodfsXuQnX6JlWt/4RCtmZc G5gAn2VYQhfv4k44bOAmEg4xGwmC5EW+ =DBpP -----END PGP SIGNATURE----- From jbc.develop en gmail.com Wed Jan 9 03:12:38 2013 From: jbc.develop en gmail.com (Juan BC) Date: Tue, 8 Jan 2013 23:12:38 -0300 Subject: [Python-es] =?iso-8859-1?q?Playlist_con_todo_el_track_cient=EDfic?= =?iso-8859-1?q?o_de_PyConAr_2012?= Message-ID: En este link pueden ver todo el track cientiífico de PyConAr 2012 en orden. Hay que recalcar que lamentablemente la charla de Matías Herranz y Joaquín Tita sobre "Imágenes Satelitales" tuvo un problema y el video esta medio irrecuperable y no esta disponible aun. Por otro lado agregue una charla que originalmente pertenecía a este track y termino quedando en paralelo (por puros problemas logísticos): "Poniéndole Lógica Peirceana a la Programación" de Javyer Der Derian Que es de las pocas charlas que existen sobre ing de software y psicología. Sin mas les dejo el link: https://www.youtube.com/playlist?list=PLFQMOORsd0x4QcvwUwZVEh8BJCQlEhhKn&feature=view_all -- Juan B Cabral From kikocorreoso en gmail.com Wed Jan 9 09:10:10 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 9 Jan 2013 09:10:10 +0100 Subject: [Python-es] =?iso-8859-1?q?Playlist_con_todo_el_track_cient=EDfic?= =?iso-8859-1?q?o_de_PyConAr_2012?= In-Reply-To: References: Message-ID: El 9 de enero de 2013 03:12, Juan BC escribió: > Por otro lado agregue una charla que originalmente pertenecía a este Muchas gracias por el aporte!!! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Wed Jan 9 10:38:43 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 9 Jan 2013 10:38:43 +0100 Subject: [Python-es] Bolsa de trabajo Python In-Reply-To: References: Message-ID: El día 8 de enero de 2013 17:23, Carlos Liébana escribió: >... si alguien me indicara la existencia de un > foro apropiado para publicar nuestra oferta, se lo agradecería. Algo > específico de Python (Infojobs, Tecnoempleo y demás los conozco ;)...) > quiero hacer un primer filtrado de personas que hayan demostrado interés en > el lenguaje. Como foro específico de trabajo para python tienes PythonJobs: http://python.org/community/jobs/ Si la oferta de trabajo es de interés para programadores hispanos, será retwitteada por twitteros hispanos desde la cuenta @pyjobo. Otros lugares donde probar serían en redes sociales ad-hoc como LinkedIn o Github Jobs (http://jobs.github.com). Espero que tengas suerte, porque te puedo adelantar que en España es muy difícil encontrar programadores python disponibles. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From lfbarrera17 en gmail.com Wed Jan 9 11:33:28 2013 From: lfbarrera17 en gmail.com (Luis Fernando Barrera) Date: Wed, 9 Jan 2013 04:33:28 -0600 Subject: [Python-es] Web Framework In-Reply-To: <051EBB75-318F-4C51-BD3B-C836B2C76E2E@yahoo.com> References: <50E985FC.3090903@gmail.com> <1B738EA8-FF94-447C-8C97-5934E64EB7F9@yahoo.com> <50EC1E33.10104@gmail.com> <50EC24B2.8060105@gmail.com> <051EBB75-318F-4C51-BD3B-C836B2C76E2E@yahoo.com> Message-ID: El soporte de Flask es muy bueno. La lista está el librelist.org Saludos, Luis Fernando Barrera On Tue, Jan 8, 2013 at 8:54 AM, Fernando Villarroel wrote: > Mario. > > En tu elección considera el soporte, en tal sentido la lista de web2py es > la más activa junto con Django. Desconozco la situación de webpy y flask. > Yo uso web2py y es el framework que te recomiendo por lo que te dije > anteriormente su curva de aprendizaje es muy suave. > > Saludos. > > Enviado desde mi iPhone > > El 08-01-2013, a las 11:18, Francois Dion > escribió: > > > Tengo código web.py en bitbucket, demostrando todo lo básico: > > > > http://www.pyptug.org/2012/11/pyptug-november-meeting-hg-repository.html > > > > La pagina es en ingles, pero, el código es obvio en cualquier > > idioma... O si no es, pregúntame. > > > > François > > > > -- > > www.pyptug.org - raspberry-python.blogspot.com > > > > On Tue, Jan 8, 2013 at 8:52 AM, Mario Lacunza > wrote: > >> Si estoy revisando web2py y webpy > >> > >> > >> > >> Saludos / Best regards > >> > >> Mario Lacunza > >> Email:: mlacunza en gmail.com > >> Personal Website:: http://www.lacunza.biz/ > >> OpenOffice.org Perú:: http://openoffice-peru.com/ > >> Hosting:: http://mlv-host.com/ > >> Mascotas Perdidas:: http://mascotas-perdidas.com/ > >> Google Talk / Y! messenger / Skype: mlacunzav > >> MSN: mlacunzav en hotmail.com > >> > >> > >> El mar 08 ene 2013 08:37:37 PET, Gabriel Pozo escribió: > >>> > >>> Y ya sabes cual va a ser tu elección? > >>> > >>> > >>> 2013/1/8 Mario Lacunza >> > >>> > >>> > >>> Muchas gracias a todos por sus respuestas! > >>> > >>> Saludos / Best regards > >>> > >>> Mario Lacunza > >>> Email:: mlacunza en gmail.com > >>> > >>> Personal Website:: http://www.lacunza.biz/ > >>> OpenOffice.org Perú:: http://openoffice-peru.com/ > >>> Hosting:: http://mlv-host.com/ > >>> Mascotas Perdidas:: http://mascotas-perdidas.com/ > >>> Google Talk / Y! messenger / Skype: mlacunzav > >>> MSN: mlacunzav en hotmail.com > >>> > >>> > >>> _________________________________________________ > >>> Python-es mailing list > >>> Python-es en python.org > >>> http://mail.python.org/__mailman/listinfo/python-es > >>> > >>> FAQ: http://python-es-faq.wikidot.__com/ > >>> > >>> > >>> > >>> > >>> > >>> -- > >>> *Saludos, Gabriel* > >>> > >>> http://aprendiendodeandroidymas.com/ > >>> > >>> > >>> http://culturalibrerosario.org/ > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> http://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From e1987ebrb en gmail.com Wed Jan 16 00:21:04 2013 From: e1987ebrb en gmail.com (=?UTF-8?B?RWxpbyBSaW5jw7Nu?=) Date: Tue, 15 Jan 2013 18:51:04 -0430 Subject: [Python-es] Sistemas 3 Message-ID: http://jamserv.blogspot.com/2011/06/formas-de-mantenimiento.html ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Wed Jan 16 10:38:09 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 16 Jan 2013 10:38:09 +0100 Subject: [Python-es] Python y Julia para LLVM Message-ID: Hasta hoy, desconocía totalmente la infraestructura LLVM[1] como soporte en la creación de compiladores (estáticos o dinámicos). Estoy viendo que con él se están implementando bastantes lenguajes de programación y librerías (sobre todo de cálculo). Me preguntaba si álguien conoce algo LLVM como para comentar sus virtudes en la implementación de lenguajes como Julia[2] (similar a python, orientado al cálculo numérico) o como "target" de PyPy. Entiendo que no es una "máquina virtual", a pesar de lo que pueda parecer su acrónimo, pero me interesaría saber en particular qué tal se lleva esta infraestructura con el multiproceso y la escalabilidad, como en el caso de la computación paralela distribuída que posee Julia. [1]: http://llvm.org/ "The LLVM Compiler Infrastructure" [2]: http://julialang.org/ "Julia Language" -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From davidmenhur en gmail.com Wed Jan 16 11:36:52 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Wed, 16 Jan 2013 11:36:52 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: Message-ID: Hay una biblioteca para Python, pyllvm. Sobre eso, la gente de continuum han montado un compilador automático, compatible con numpy: numba. Simplemente añadiendo un decorador a la función la optimiza al vuelo. El proyecto es muy nuevo, pero desde hace unas semanas ya está listo para producción. En pybonaci Juanlu hizo una reseña con algunos resultados impresionantes de la primera versión: pybonacci.wordpress.com/2012/08/21/probando-numba-compilador-para-python-basado-en-llvm/ Travis ha dado alguna charla más sobre numba desde la que hay allí colgada, si buscas un poco puedes encontrar unas cuantas interesantes (aunque las que he visto aportan poco más que esa). Lo único que le falta al proyecto es una buena documentación. On Jan 16, 2013 10:39 AM, "Chema Cortes" wrote: > Hasta hoy, desconocía totalmente la infraestructura LLVM[1] como > soporte en la creación de compiladores (estáticos o dinámicos). Estoy > viendo que con él se están implementando bastantes lenguajes de > programación y librerías (sobre todo de cálculo). > > Me preguntaba si álguien conoce algo LLVM como para comentar sus > virtudes en la implementación de lenguajes como Julia[2] (similar a > python, orientado al cálculo numérico) o como "target" de PyPy. > Entiendo que no es una "máquina virtual", a pesar de lo que pueda > parecer su acrónimo, pero me interesaría saber en particular qué tal > se lleva esta infraestructura con el multiproceso y la escalabilidad, > como en el caso de la computación paralela distribuída que posee > Julia. > > > [1]: http://llvm.org/ "The LLVM Compiler Infrastructure" > [2]: http://julialang.org/ "Julia Language" > > > > > > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Wed Jan 16 11:58:05 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 16 Jan 2013 11:58:05 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: Message-ID: El 16 de enero de 2013 11:36, Da?id escribió: > Hay una biblioteca para Python, pyllvm. Sobre eso, la gente de continuum > han montado un compilador automático, compatible con numpy: numba. > Simplemente añadiendo un decorador a la función la optimiza al vuelo. El > proyecto es muy nuevo, pero desde hace unas semanas ya está listo para > producción. También están creando blaze (¿un numpy del siglo XXI y adaptado al bigdata?) que hace uso, también, de LLVM: 'Blaze has a compiler to create machine code based on the LLVM infrastructure' http://blaze.pydata.org/vision.html ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rapto en arrakis.es Wed Jan 16 11:50:39 2013 From: rapto en arrakis.es (=?UTF-8?B?TWFyY29zIFPDoW5jaGV6IFByb3ZlbmNpbw==?=) Date: Wed, 16 Jan 2013 11:50:39 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: Message-ID: <50F685FF.5020509@arrakis.es> En mi empresa, meteogrid, hay algún modesto contribuidor a numba (no soy yo :) Estamos muy interesados en el proyecto. El 16/01/13 11:36, Da?id escribió: > > Hay una biblioteca para Python, pyllvm. Sobre eso, la gente de > continuum han montado un compilador automático, compatible con numpy: > numba. Simplemente añadiendo un decorador a la función la optimiza al > vuelo. El proyecto es muy nuevo, pero desde hace unas semanas ya está > listo para producción. > > From faltet en gmail.com Wed Jan 16 15:17:37 2013 From: faltet en gmail.com (Francesc Alted) Date: Wed, 16 Jan 2013 15:17:37 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: Message-ID: <50F6B681.5060204@gmail.com> On 1/16/13 10:38 AM, Chema Cortes wrote: > Hasta hoy, desconocía totalmente la infraestructura LLVM[1] como > soporte en la creación de compiladores (estáticos o dinámicos). Estoy > viendo que con él se están implementando bastantes lenguajes de > programación y librerías (sobre todo de cálculo). > > Me preguntaba si álguien conoce algo LLVM como para comentar sus > virtudes en la implementación de lenguajes como Julia[2] (similar a > python, orientado al cálculo numérico) o como "target" de PyPy. > Entiendo que no es una "máquina virtual", a pesar de lo que pueda > parecer su acrónimo, pero me interesaría saber en particular qué tal > se lleva esta infraestructura con el multiproceso y la escalabilidad, > como en el caso de la computación paralela distribuída que posee > Julia. Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo conozco demasiado, pero sí que puedo decir que en Continuum estamos poniendo a punto Numba (https://github.com/numba/numba), un compilador al vuelo (JIT) que traduce código Python al lenguaje intermedio (IR) que usa LLVM internamente. LLVM, a su vez, compila el IR a código nativo (que depende de la platforma) y lo ejecuta (o lo puede guardar en un fichero binario, esto ya depende de la aplicación). Numba permite, mediante decoradores y anotaciones de tipo, hacer que funciones puras en Python (ahora mismo no se soporta todo el lenguaje, pero sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y lo que es mejor, de manera completamente interactiva (la compilación al vuelo es realmente rápida). Numba es completamente open-source, así que cualquiera puede contribuir al proyecto (de hecho alguien de esta lista ya menciona que han contribuido ya). Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología demasiado útil para PyPy, ya que éste último viene con su propio compilador JIT, asi no se complementan demasiado bien. En Continuum claramente hemos apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de Numba es que no se tiene por qué renunciar a librerias que son extensiones (el proyecto de migración de NumPy a PyPy está siendo lento y plagado de trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo de una manera completa). Numba permite compilar de manera selectiva la parte de código Python que es un cuello de botella, respetando toda la gama de librerias y extensiones que ya existen ahora mismo. Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro proyecto para reemplazar NumPy para problemas de Big Data, usará Numba como motor de cálculo de manera que el usuario no tenga que preocuparse de hacer extensiones para optimizar los cálculos, sino que éstos se efectuarán a velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro desarrollo open source, y aunque todavía está en su infancia, esperamos que de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con él. -- Francesc Alted From pych3m4 en gmail.com Wed Jan 16 16:06:29 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 16 Jan 2013 16:06:29 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: <50F6B681.5060204@gmail.com> References: <50F6B681.5060204@gmail.com> Message-ID: El día 16 de enero de 2013 15:17, Francesc Alted escribió: > Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo > conozco demasiado, pero sí que puedo decir que en Continuum estamos poniendo > a punto Numba (https://github.com/numba/numba), un compilador al vuelo (JIT) > que traduce código Python al lenguaje intermedio (IR) que usa LLVM > internamente. LLVM, a su vez, compila el IR a código nativo (que depende de > la platforma) y lo ejecuta (o lo puede guardar en un fichero binario, esto > ya depende de la aplicación). > > Numba permite, mediante decoradores y anotaciones de tipo, hacer que > funciones puras en Python (ahora mismo no se soporta todo el lenguaje, pero > sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y lo > que es mejor, de manera completamente interactiva (la compilación al vuelo > es realmente rápida). Numba es completamente open-source, así que > cualquiera puede contribuir al proyecto (de hecho alguien de esta lista ya > menciona que han contribuido ya). Creo que ya tengo claro cómo usáis LLVM en numba. Incluso veo que permite la compilación estática además de JIT, lo que seguramente tiene que dar resultados bastantes buenos. Tenía interés en saber si LLVM facilitaba la concurrencia y el cómputo distribuido. Por lo que veo, Julia tiene estas facilidades, pero debe ser cosecha propia. También estoy viendo proyectos para portar otros lenguajes como scala o C# a LLVM, por lo que parece que esta plataforma empieza a tomar auge y, tal vez, lleguemos a librarnos de JVM y .Net. > Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología > demasiado útil para PyPy, ya que éste último viene con su propio compilador > JIT, asi no se complementan demasiado bien. En Continuum claramente hemos > apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de Numba > es que no se tiene por qué renunciar a librerias que son extensiones (el > proyecto de migración de NumPy a PyPy está siendo lento y plagado de > trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo de > una manera completa). Numba permite compilar de manera selectiva la parte > de código Python que es un cuello de botella, respetando toda la gama de > librerias y extensiones que ya existen ahora mismo. > > Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro > proyecto para reemplazar NumPy para problemas de Big Data, usará Numba como > motor de cálculo de manera que el usuario no tenga que preocuparse de hacer > extensiones para optimizar los cálculos, sino que éstos se efectuarán a > velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro > desarrollo open source, y aunque todavía está en su infancia, esperamos que > de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con > él. No conocía Blaze. Le echaré un vistazo. Ya solo os falta un proyecto para computación distribuída ;-) -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From jdpd en gmx.es Wed Jan 16 16:34:03 2013 From: jdpd en gmx.es (Jaime Perea) Date: Wed, 16 Jan 2013 16:34:03 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: <50F6B681.5060204@gmail.com> Message-ID: <3299671.hJ7ZpfCjM2@cristina> On Miércoles, 16 de enero de 2013 16:06:29 Chema Cortes escribió: > El día 16 de enero de 2013 15:17, Francesc Alted escribió: > > Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo > > conozco demasiado, pero sí que puedo decir que en Continuum estamos > > poniendo a punto Numba (https://github.com/numba/numba), un compilador al > > vuelo (JIT) que traduce código Python al lenguaje intermedio (IR) que usa > > LLVM internamente. LLVM, a su vez, compila el IR a código nativo (que > > depende de la platforma) y lo ejecuta (o lo puede guardar en un fichero > > binario, esto ya depende de la aplicación). > > > > Numba permite, mediante decoradores y anotaciones de tipo, hacer que > > funciones puras en Python (ahora mismo no se soporta todo el lenguaje, > > pero > > sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y > > lo que es mejor, de manera completamente interactiva (la compilación al > > vuelo es realmente rápida). Numba es completamente open-source, así que > > cualquiera puede contribuir al proyecto (de hecho alguien de esta lista > > ya menciona que han contribuido ya). > > Creo que ya tengo claro cómo usáis LLVM en numba. Incluso veo que > permite la compilación estática además de JIT, lo que seguramente > tiene que dar resultados bastantes buenos. > > Tenía interés en saber si LLVM facilitaba la concurrencia y el cómputo > distribuido. Por lo que veo, Julia tiene estas facilidades, pero debe > ser cosecha propia. También estoy viendo proyectos para portar otros > lenguajes como scala o C# a LLVM, por lo que parece que esta > plataforma empieza a tomar auge y, tal vez, lleguemos a librarnos de > JVM y .Net. > > > Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología > > demasiado útil para PyPy, ya que éste último viene con su propio > > compilador > > JIT, asi no se complementan demasiado bien. En Continuum claramente hemos > > apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de > > Numba > > es que no se tiene por qué renunciar a librerias que son extensiones (el > > proyecto de migración de NumPy a PyPy está siendo lento y plagado de > > trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo > > de > > una manera completa). Numba permite compilar de manera selectiva la parte > > de código Python que es un cuello de botella, respetando toda la gama de > > librerias y extensiones que ya existen ahora mismo. > > > > Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro > > proyecto para reemplazar NumPy para problemas de Big Data, usará Numba > > como > > motor de cálculo de manera que el usuario no tenga que preocuparse de > > hacer > > extensiones para optimizar los cálculos, sino que éstos se efectuarán a > > velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro > > desarrollo open source, y aunque todavía está en su infancia, esperamos > > que > > de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con > > él. > > No conocía Blaze. Le echaré un vistazo. Ya solo os falta un proyecto > para computación distribuída ;-) Hola Unas preguntas técnicas de un ignorante: Cuando habláis de computación distribuida, ¿se refieres a python en entornos, digamos, mpi o sólo en memoria compartida?. El problema que le veo siempre a esta historia es que si quieres mover datos sin tener que ir a tcp/ip, por ejemplo moviendo cosas en infiniband, no te quedan muchas más opciones que mpi... o inventarte algo como protocolo de comunicaciones. ¿Sabéis como lo gestiona esto julia?. Otra pregunta ¿como afecta la existencia del GIL a vuestros tipos de optimizaciones? Poder programar number-crunching en python es un sueño para gente como yo :-) Saluditos -- Jaime D. Perea Duarte. Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. From faltet en gmail.com Wed Jan 16 17:17:54 2013 From: faltet en gmail.com (Francesc Alted) Date: Wed, 16 Jan 2013 17:17:54 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: <50F6B681.5060204@gmail.com> Message-ID: <50F6D2B2.9000105@gmail.com> On 1/16/13 4:06 PM, Chema Cortes wrote: > El día 16 de enero de 2013 15:17, Francesc Alted escribió: > >> Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo >> conozco demasiado, pero sí que puedo decir que en Continuum estamos poniendo >> a punto Numba (https://github.com/numba/numba), un compilador al vuelo (JIT) >> que traduce código Python al lenguaje intermedio (IR) que usa LLVM >> internamente. LLVM, a su vez, compila el IR a código nativo (que depende de >> la platforma) y lo ejecuta (o lo puede guardar en un fichero binario, esto >> ya depende de la aplicación). >> >> Numba permite, mediante decoradores y anotaciones de tipo, hacer que >> funciones puras en Python (ahora mismo no se soporta todo el lenguaje, pero >> sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y lo >> que es mejor, de manera completamente interactiva (la compilación al vuelo >> es realmente rápida). Numba es completamente open-source, así que >> cualquiera puede contribuir al proyecto (de hecho alguien de esta lista ya >> menciona que han contribuido ya). > Creo que ya tengo claro cómo usáis LLVM en numba. Incluso veo que > permite la compilación estática además de JIT, lo que seguramente > tiene que dar resultados bastantes buenos. Sí, pero cuando digo que el JIT de Numba es rápido, es porque lo es, y mucho. Por ejemplo, en la transparencia 36 y 37 de esta presentación: https://python.g-node.org/wiki/_media/starving_cpu/starving-cpu.pdf se puede ver que el tiempo de compilación para el código es de unos 20 ms, que normalmente es despreciable para rutinas que suelen ser el cuello de botella de cálculos complicados. > > Tenía interés en saber si LLVM facilitaba la concurrencia y el cómputo > distribuido. Por lo que veo, Julia tiene estas facilidades, pero debe > ser cosecha propia. También estoy viendo proyectos para portar otros > lenguajes como scala o C# a LLVM, por lo que parece que esta > plataforma empieza a tomar auge y, tal vez, lleguemos a librarnos de > JVM y .Net. > >> Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología >> demasiado útil para PyPy, ya que éste último viene con su propio compilador >> JIT, asi no se complementan demasiado bien. En Continuum claramente hemos >> apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de Numba >> es que no se tiene por qué renunciar a librerias que son extensiones (el >> proyecto de migración de NumPy a PyPy está siendo lento y plagado de >> trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo de >> una manera completa). Numba permite compilar de manera selectiva la parte >> de código Python que es un cuello de botella, respetando toda la gama de >> librerias y extensiones que ya existen ahora mismo. >> >> Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro >> proyecto para reemplazar NumPy para problemas de Big Data, usará Numba como >> motor de cálculo de manera que el usuario no tenga que preocuparse de hacer >> extensiones para optimizar los cálculos, sino que éstos se efectuarán a >> velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro >> desarrollo open source, y aunque todavía está en su infancia, esperamos que >> de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con >> él. > No conocía Blaze. Le echaré un vistazo. Ya solo os falta un proyecto > para computación distribuída ;-) Bueno, ese el espíritu de Blaze, que nos valga para computación distribuida. En http://blaze.pydata.org/vision.html se puede leer: """ Just as NumPy is the center of an ecosystem of singe-node, in-memory tools that use the NumPy array as a common shared abstraction around a single pointer to memory, Blaze is the center of an ecosystem of multiple-node, multiple-segment, and multiple calculation-unit algorithms and programs. The common meme in effective use of Blaze is that developers should think about their data and the operations that should be done on their data in an array-oriented fashion, and that code should be moved to data as much as possible. """ Así que el tema de computación distribuida está definitavmente en nuestro radar. En particular, y dado lo caro que es el transporte de datos, y como se lee arriba, nuestro objetivo es llevar el código donde están los datos, y no al revés. Ahí es donde Numba (y LLVM) van a ser realmente importantes. -- Francesc Alted From faltet en gmail.com Wed Jan 16 17:29:14 2013 From: faltet en gmail.com (Francesc Alted) Date: Wed, 16 Jan 2013 17:29:14 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: <3299671.hJ7ZpfCjM2@cristina> References: <50F6B681.5060204@gmail.com> <3299671.hJ7ZpfCjM2@cristina> Message-ID: <50F6D55A.80104@gmail.com> On 1/16/13 4:34 PM, Jaime Perea wrote: > On Miércoles, 16 de enero de 2013 16:06:29 Chema Cortes escribió: >> El día 16 de enero de 2013 15:17, Francesc Alted > escribió: >>> Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo >>> conozco demasiado, pero sí que puedo decir que en Continuum estamos >>> poniendo a punto Numba (https://github.com/numba/numba), un compilador al >>> vuelo (JIT) que traduce código Python al lenguaje intermedio (IR) que usa >>> LLVM internamente. LLVM, a su vez, compila el IR a código nativo (que >>> depende de la platforma) y lo ejecuta (o lo puede guardar en un fichero >>> binario, esto ya depende de la aplicación). >>> >>> Numba permite, mediante decoradores y anotaciones de tipo, hacer que >>> funciones puras en Python (ahora mismo no se soporta todo el lenguaje, >>> pero >>> sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y >>> lo que es mejor, de manera completamente interactiva (la compilación al >>> vuelo es realmente rápida). Numba es completamente open-source, así que >>> cualquiera puede contribuir al proyecto (de hecho alguien de esta lista >>> ya menciona que han contribuido ya). >> Creo que ya tengo claro cómo usáis LLVM en numba. Incluso veo que >> permite la compilación estática además de JIT, lo que seguramente >> tiene que dar resultados bastantes buenos. >> >> Tenía interés en saber si LLVM facilitaba la concurrencia y el cómputo >> distribuido. Por lo que veo, Julia tiene estas facilidades, pero debe >> ser cosecha propia. También estoy viendo proyectos para portar otros >> lenguajes como scala o C# a LLVM, por lo que parece que esta >> plataforma empieza a tomar auge y, tal vez, lleguemos a librarnos de >> JVM y .Net. >> >>> Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología >>> demasiado útil para PyPy, ya que éste último viene con su propio >>> compilador >>> JIT, asi no se complementan demasiado bien. En Continuum claramente hemos >>> apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de >>> Numba >>> es que no se tiene por qué renunciar a librerias que son extensiones (el >>> proyecto de migración de NumPy a PyPy está siendo lento y plagado de >>> trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo >>> de >>> una manera completa). Numba permite compilar de manera selectiva la parte >>> de código Python que es un cuello de botella, respetando toda la gama de >>> librerias y extensiones que ya existen ahora mismo. >>> >>> Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro >>> proyecto para reemplazar NumPy para problemas de Big Data, usará Numba >>> como >>> motor de cálculo de manera que el usuario no tenga que preocuparse de >>> hacer >>> extensiones para optimizar los cálculos, sino que éstos se efectuarán a >>> velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro >>> desarrollo open source, y aunque todavía está en su infancia, esperamos >>> que >>> de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con >>> él. >> No conocía Blaze. Le echaré un vistazo. Ya solo os falta un proyecto >> para computación distribuída ;-) > Hola > > Unas preguntas técnicas de un ignorante: > > Cuando habláis de computación distribuida, ¿se refieres a python en entornos, > digamos, mpi o sólo en memoria compartida?. No sé lo que piensa Chema en particular, pero para nosotros (Continuum), los dos. > > El problema que le veo siempre a esta historia es que si quieres mover datos > sin tener que ir a tcp/ip, por ejemplo moviendo cosas en infiniband, no te > quedan muchas más opciones que mpi... o inventarte algo como protocolo de > comunicaciones. ¿Sabéis como lo gestiona esto julia?. Yo no tengo ni idea de como lo gestiona Julia. Pero como he dicho antes, el espíritu de Blaze es distribuir los datos entre diferentes nodos y después intentar mapear el código donde están los datos con el fin de minimizar su transporte (el map-reduce funciona de manera parecida). En los casos donde este mapeo no pueda ser exacto los datos se tendran que transportar. El tipo de transporte que se usará todavia está por decidir, pero Disco (http://discoproject.org/), y en particular, su filesystem distribuido tiene muchas papeletas para ser el vehiculo elegido (pero es cierto que todavia contemplamos otras posibles soluciones). > > > Otra pregunta ¿como afecta la existencia del GIL a vuestros tipos de > optimizaciones? El GIL sólo afecta a código que corre en la máquina virtual de Python, asi que el código emitido por LLVM no está sujeto a tales restricciones. En particular, nuestro objectivo es poder usar de manera efectiva no sólo los diferentes cores de la CPU de manera simultánea, sino también las posibles GPUs del sistema. > > > Poder programar number-crunching en python es un sueño para gente como yo :-) Bueno, para tí y para mucha gente ;) -- Francesc Alted From cm.agullo en gmail.com Thu Jan 17 10:46:36 2013 From: cm.agullo en gmail.com (=?ISO-8859-1?Q?Carlos_Agull=F3_Calvo?=) Date: Thu, 17 Jan 2013 10:46:36 +0100 Subject: [Python-es] Tratar datos txt entre filas Message-ID: hola Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que están en un .txt desde entonces, he conseguido varios progresos, pero ahora me he quedado estancado en un punto del que no se salir. Mi duda consiste en lo siguiente: tengo los datos de la siguiente manera: "0303201";1/4/2009 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 "0303201";1/4/2009 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 (Es un extracto) y querría poder compararlos entre las filas para aplicar una serie de filtros y en función de si cumplen o no los filtros que vayan a archivos separados. He pensado que debería hacer que cada fila fuera una lista y por eso he hecho este programa: leer=open("datos.txt","r") lista=open("datos_lista.txt","a") validos=open("est_0303201_VAL.txt","a") no_validos=open("est_0303201_ERR.txt","a") for i in leer.readlines(): #con esto lee cada línea datos=i.strip().split(";") #guarda cada linea como una lista lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) las lineas como listas [,] leer.close() validos.close() que me crea 2 archivos vacíos y uno con los datos en forma de listas así: ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', '-127', '0'] ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', '-127', '0'] (es un extracto) El problema es que no sé cómo poner los filtros. Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna en negrita 2 es 100 se considere error. o que en el siguiente ejemplo: ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', '-127', '0'] ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', '-127', '0'] (es un extracto) si en la fila 2 la columna en negrita es menor que en la fila 1 también de error. (luego pondría yo que me diga el filtro que no cumple, pero eso creo que lo sé hacer). ¿Podríais ayudarme? Muchas gracias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Thu Jan 17 10:56:06 2013 From: kikocorreoso en gmail.com (Kiko) Date: Thu, 17 Jan 2013 10:56:06 +0100 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: El 17 de enero de 2013 10:46, Carlos Agulló Calvo escribió: > hola > > Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que > están en un .txt desde entonces, he conseguido varios progresos, pero ahora > me he quedado estancado en un punto del que no se salir. > > Mi duda consiste en lo siguiente: > > tengo los datos de la siguiente manera: > > "0303201";1/4/2009 > 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 > "0303201";1/4/2009 > 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 > (Es un extracto) > > y querría poder compararlos entre las filas para aplicar una serie de > filtros y en función de si cumplen o no los filtros que vayan a archivos > separados. > > He pensado que debería hacer que cada fila fuera una lista y por eso he > hecho este programa: > > leer=open("datos.txt","r") > lista=open("datos_lista.txt","a") > validos=open("est_0303201_VAL.txt","a") > no_validos=open("est_0303201_ERR.txt","a") > > for i in leer.readlines(): #con esto lee cada línea > datos=i.strip().split(";") #guarda cada linea como una lista > lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) > las lineas como listas [,] > > > > leer.close() > validos.close() > > que me crea 2 archivos vacíos y uno con los datos en forma de listas así: > > ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', > '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', > '-127', '0'] > ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', > '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', > '-127', '0'] > (es un extracto) > > El problema es que no sé cómo poner los filtros. > > Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna > en negrita 2 es 100 se considere error. > > o que en el siguiente ejemplo: > > ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, > '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', > '-127', '0'] > ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, > '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', > '-127', '0'] > (es un extracto) > > si en la fila 2 la columna en negrita es menor que en la fila 1 también de > error. > > (luego pondría yo que me diga el filtro que no cumple, pero eso creo que > lo sé hacer). > > ¿Podríais ayudarme? > > Muchas gracias > > > Aprovecha el for para aplicar tus filtros directamente ahí a medida que vas leyendo. Mete un par de ifs para tratar si es el principio o fin del fichero para comparar con el dato anterior (en fecha). ¿Te has planteado usar numpy para esto o no es posible y debes usar python puro? Numpy te podría facilitar mucho las cosas y librarte de algún for que te ralentice el programa. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From cm.agullo en gmail.com Thu Jan 17 11:10:16 2013 From: cm.agullo en gmail.com (=?ISO-8859-1?Q?Carlos_Agull=F3_Calvo?=) Date: Thu, 17 Jan 2013 11:10:16 +0100 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: Muchas gracias por la respuesta (y por la velocidad en ella) Aprovecha el for para aplicar tus filtros directamente ahí a medida que vas leyendo. Mete un par de ifs para tratar si es el principio o fin del fichero para comparar con el dato anterior (en fecha). Sí, pensaba aprovechar el for para poner los filtros. Lo de los ifs es buena idea para saber si es primera o última fila, pero lo que no se es comparar entre 2 filas cualquiera (p.ej la fila 11 y la 12). Por cierto, ¿es necesario pasar a listas las filas? es que se me duplica el peso de los archivos que ya de por si son bastante pesados. ¿Te has planteado usar numpy para esto o no es posible y debes usar python puro? Numpy te podría facilitar mucho las cosas y librarte de algún for que te ralentice el programa. No he usado nunca numpy, es más, ni siquiera sabía de su existencia. Soy bastante novato y el tratamiento de los datos es para un tema de la universidad, por lo que puedo usar lo que quiera, sólo que pensé que python era lo mejor y por eso me puse a aprenderlo por libre. Me voy a bajar numpy y matplotlib porque luego tendré que ponerme a hacer gráficos con los resultados. Un saludo El 17 de enero de 2013 10:56, Kiko escribió: > > > El 17 de enero de 2013 10:46, Carlos Agulló Calvo escribió: > > hola >> >> Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que >> están en un .txt desde entonces, he conseguido varios progresos, pero ahora >> me he quedado estancado en un punto del que no se salir. >> >> Mi duda consiste en lo siguiente: >> >> tengo los datos de la siguiente manera: >> >> "0303201";1/4/2009 >> 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 >> "0303201";1/4/2009 >> 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 >> (Es un extracto) >> >> y querría poder compararlos entre las filas para aplicar una serie de >> filtros y en función de si cumplen o no los filtros que vayan a archivos >> separados. >> >> He pensado que debería hacer que cada fila fuera una lista y por eso he >> hecho este programa: >> >> leer=open("datos.txt","r") >> lista=open("datos_lista.txt","a") >> validos=open("est_0303201_VAL.txt","a") >> no_validos=open("est_0303201_ERR.txt","a") >> >> for i in leer.readlines(): #con esto lee cada línea >> datos=i.strip().split(";") #guarda cada linea como una lista >> lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) >> las lineas como listas [,] >> >> >> >> leer.close() >> validos.close() >> >> que me crea 2 archivos vacíos y uno con los datos en forma de listas así: >> >> ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', >> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >> '-127', '0'] >> ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', >> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >> '-127', '0'] >> (es un extracto) >> >> El problema es que no sé cómo poner los filtros. >> >> Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna >> en negrita 2 es 100 se considere error. >> >> o que en el siguiente ejemplo: >> >> ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, >> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >> '-127', '0'] >> ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, >> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >> '-127', '0'] >> (es un extracto) >> >> si en la fila 2 la columna en negrita es menor que en la fila 1 también >> de error. >> >> (luego pondría yo que me diga el filtro que no cumple, pero eso creo que >> lo sé hacer). >> >> ¿Podríais ayudarme? >> >> Muchas gracias >> >> >> > Aprovecha el for para aplicar tus filtros directamente ahí a medida que > vas leyendo. Mete un par de ifs para tratar si es el principio o fin del > fichero para comparar con el dato anterior (en fecha). > > ¿Te has planteado usar numpy para esto o no es posible y debes usar python > puro? Numpy te podría facilitar mucho las cosas y librarte de algún for que > te ralentice el programa. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Thu Jan 17 10:49:26 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 17 Jan 2013 10:49:26 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: <50F6D2B2.9000105@gmail.com> References: <50F6B681.5060204@gmail.com> <50F6D2B2.9000105@gmail.com> Message-ID: El día 16 de enero de 2013 17:17, Francesc Alted escribió: > Así que el tema de computación distribuida está definitavmente en nuestro > radar. En particular, y dado lo caro que es el transporte de datos, y como > se lee arriba, nuestro objetivo es llevar el código donde están los datos, y > no al revés. Ahí es donde Numba (y LLVM) van a ser realmente importantes. Excelente enfoque. Suena a nuevo "paradigma" en el tratamiento de datos. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From kikocorreoso en gmail.com Thu Jan 17 11:23:19 2013 From: kikocorreoso en gmail.com (Kiko) Date: Thu, 17 Jan 2013 11:23:19 +0100 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: El 17 de enero de 2013 11:10, Carlos Agulló Calvo escribió: > Muchas gracias por la respuesta (y por la velocidad en ella) > > Aprovecha el for para aplicar tus filtros directamente ahí a medida que > vas leyendo. Mete un par de ifs para tratar si es el principio o fin del > fichero para comparar con el dato anterior (en fecha). > > Sí, pensaba aprovechar el for para poner los filtros. Lo de los ifs es > buena idea para saber si es primera o última fila, pero lo que no se es > comparar entre 2 filas cualquiera (p.ej la fila 11 y la 12). > Por cierto, ¿es necesario pasar a listas las filas? es que se me duplica > el peso de los archivos que ya de por si son bastante pesados. > > Las listas y los ficheros son independientes. Las listas van en memoria y los archivos a disco. No entiendo muy bien lo que quieres decir. > ¿Te has planteado usar numpy para esto o no es posible y debes usar python > puro? Numpy te podría facilitar mucho las cosas y librarte de algún for que > te ralentice el programa. > > No he usado nunca numpy, es más, ni siquiera sabía de su existencia. Soy > bastante novato y el tratamiento de los datos es para un tema de la > universidad, por lo que puedo usar lo que quiera, sólo que pensé que python > era lo mejor y por eso me puse a aprenderlo por libre. Me voy a bajar numpy > y matplotlib porque luego tendré que ponerme a hacer gráficos con los > resultados. > Numpy es python con funcionalidades añadidas. Para las cosas que parece que estás haciendo te vendría bien aunque se puede hacer sin usar numpy. Para matplotlib hemos hecho un tutorial de iniciaión aquí: http://pybonacci.wordpress.com/tag/tutorial-matplotlib-pyplot/ (entradas) http://pybonacci.files.wordpress.com/2012/08/tutorial-de-matplotlib-pyplotv0-1-201208311.pdf(tutorial completo en pdf) Espero te sirva de algo. Saludos. > Un saludo > > El 17 de enero de 2013 10:56, Kiko escribió: > >> >> >> El 17 de enero de 2013 10:46, Carlos Agulló Calvo escribió: >> >> hola >>> >>> Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que >>> están en un .txt desde entonces, he conseguido varios progresos, pero ahora >>> me he quedado estancado en un punto del que no se salir. >>> >>> Mi duda consiste en lo siguiente: >>> >>> tengo los datos de la siguiente manera: >>> >>> "0303201";1/4/2009 >>> 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 >>> "0303201";1/4/2009 >>> 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 >>> (Es un extracto) >>> >>> y querría poder compararlos entre las filas para aplicar una serie de >>> filtros y en función de si cumplen o no los filtros que vayan a archivos >>> separados. >>> >>> He pensado que debería hacer que cada fila fuera una lista y por eso he >>> hecho este programa: >>> >>> leer=open("datos.txt","r") >>> lista=open("datos_lista.txt","a") >>> validos=open("est_0303201_VAL.txt","a") >>> no_validos=open("est_0303201_ERR.txt","a") >>> >>> for i in leer.readlines(): #con esto lee cada línea >>> datos=i.strip().split(";") #guarda cada linea como una lista >>> lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) >>> las lineas como listas [,] >>> >>> >>> >>> leer.close() >>> validos.close() >>> >>> que me crea 2 archivos vacíos y uno con los datos en forma de listas así: >>> >>> ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', >>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>> '-127', '0'] >>> ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', >>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>> '-127', '0'] >>> (es un extracto) >>> >>> El problema es que no sé cómo poner los filtros. >>> >>> Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna >>> en negrita 2 es 100 se considere error. >>> >>> o que en el siguiente ejemplo: >>> >>> ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, >>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>> '-127', '0'] >>> ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, >>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>> '-127', '0'] >>> (es un extracto) >>> >>> si en la fila 2 la columna en negrita es menor que en la fila 1 también >>> de error. >>> >>> (luego pondría yo que me diga el filtro que no cumple, pero eso creo que >>> lo sé hacer). >>> >>> ¿Podríais ayudarme? >>> >>> Muchas gracias >>> >>> >>> >> Aprovecha el for para aplicar tus filtros directamente ahí a medida que >> vas leyendo. Mete un par de ifs para tratar si es el principio o fin del >> fichero para comparar con el dato anterior (en fecha). >> >> ¿Te has planteado usar numpy para esto o no es posible y debes usar >> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >> for que te ralentice el programa. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jacobo.tarragon en gmail.com Thu Jan 17 11:27:37 2013 From: jacobo.tarragon en gmail.com (=?ISO-8859-1?Q?Jacobo_Tarrag=F3n_Cros?=) Date: Thu, 17 Jan 2013 11:27:37 +0100 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: Hola Carlos, yo definiría los filtros como funciones y los aplicaría uno por uno a los datos en el bucle de lectura. Si necesitas comparar filas arbitrarias, lo más sencillo es guardar los datos leídos en memoria ?pero ten en cuenta que esto puede ser un problema si tu conjunto de datos es demasiado grande. Para los casos que citas, sólo sería necesario guardarse la fila nueva y la anterior. def cero_y_cien(nuevos, datos): return not (nuevos[3] == '0' and nuevos[4] == '100') def valor_mayor(nuevos, datos): # compara nuevos con la fila mas reciente de datos return int(nuevos[4]) >= int(datos[-1][4]) datos = [] filtros = (cero_y_cien, valor_mayor) for linea in leer.readlines(): nuevos = linea.strip().split(';') datos.append(nuevos) for fn in filtros: valido = fn(nuevos, datos) Si quieres comparar los datos independientemente ?por columnas? lo más conveniente es convertir cada fila en una lista. ¿Qué quieres decir con que te duplica el peso de los archivos? Un método un poco más sofisticado podría ser lanzar excepciones cuando un filtro falla, y recogerlas en el bucle con un try/except: def cero_y_cien(nuevos, datos): if (nuevos[3] == 0 and nuevos[4] == 100): raise ValueError('las columnas 3 y 4 son 0 y 100 respectivamente') Personalmente no usaría numpy para este tratamiento de datos. No he probado el código pero espero que te sirva de orientación. Saludos, Jacobo. El 17 de enero de 2013 11:10, Carlos Agulló Calvo escribió: > Muchas gracias por la respuesta (y por la velocidad en ella) > > Aprovecha el for para aplicar tus filtros directamente ahí a medida que > vas leyendo. Mete un par de ifs para tratar si es el principio o fin del > fichero para comparar con el dato anterior (en fecha). > > Sí, pensaba aprovechar el for para poner los filtros. Lo de los ifs es > buena idea para saber si es primera o última fila, pero lo que no se es > comparar entre 2 filas cualquiera (p.ej la fila 11 y la 12). > Por cierto, ¿es necesario pasar a listas las filas? es que se me duplica > el peso de los archivos que ya de por si son bastante pesados. > > > ¿Te has planteado usar numpy para esto o no es posible y debes usar python > puro? Numpy te podría facilitar mucho las cosas y librarte de algún for que > te ralentice el programa. > > No he usado nunca numpy, es más, ni siquiera sabía de su existencia. Soy > bastante novato y el tratamiento de los datos es para un tema de la > universidad, por lo que puedo usar lo que quiera, sólo que pensé que python > era lo mejor y por eso me puse a aprenderlo por libre. Me voy a bajar numpy > y matplotlib porque luego tendré que ponerme a hacer gráficos con los > resultados. > > Un saludo > > El 17 de enero de 2013 10:56, Kiko escribió: > >> >> >> El 17 de enero de 2013 10:46, Carlos Agulló Calvo escribió: >> >> hola >>> >>> Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que >>> están en un .txt desde entonces, he conseguido varios progresos, pero ahora >>> me he quedado estancado en un punto del que no se salir. >>> >>> Mi duda consiste en lo siguiente: >>> >>> tengo los datos de la siguiente manera: >>> >>> "0303201";1/4/2009 >>> 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 >>> "0303201";1/4/2009 >>> 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 >>> (Es un extracto) >>> >>> y querría poder compararlos entre las filas para aplicar una serie de >>> filtros y en función de si cumplen o no los filtros que vayan a archivos >>> separados. >>> >>> He pensado que debería hacer que cada fila fuera una lista y por eso he >>> hecho este programa: >>> >>> leer=open("datos.txt","r") >>> lista=open("datos_lista.txt","a") >>> validos=open("est_0303201_VAL.txt","a") >>> no_validos=open("est_0303201_ERR.txt","a") >>> >>> for i in leer.readlines(): #con esto lee cada línea >>> datos=i.strip().split(";") #guarda cada linea como una lista >>> lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) >>> las lineas como listas [,] >>> >>> >>> >>> leer.close() >>> validos.close() >>> >>> que me crea 2 archivos vacíos y uno con los datos en forma de listas así: >>> >>> ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', >>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>> '-127', '0'] >>> ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', >>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>> '-127', '0'] >>> (es un extracto) >>> >>> El problema es que no sé cómo poner los filtros. >>> >>> Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna >>> en negrita 2 es 100 se considere error. >>> >>> o que en el siguiente ejemplo: >>> >>> ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, >>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>> '-127', '0'] >>> ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, >>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>> '-127', '0'] >>> (es un extracto) >>> >>> si en la fila 2 la columna en negrita es menor que en la fila 1 también >>> de error. >>> >>> (luego pondría yo que me diga el filtro que no cumple, pero eso creo que >>> lo sé hacer). >>> >>> ¿Podríais ayudarme? >>> >>> Muchas gracias >>> >>> >>> >> Aprovecha el for para aplicar tus filtros directamente ahí a medida que >> vas leyendo. Mete un par de ifs para tratar si es el principio o fin del >> fichero para comparar con el dato anterior (en fecha). >> >> ¿Te has planteado usar numpy para esto o no es posible y debes usar >> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >> for que te ralentice el programa. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Thu Jan 17 11:45:12 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 17 Jan 2013 11:45:12 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: <50F6D55A.80104@gmail.com> References: <50F6B681.5060204@gmail.com> <3299671.hJ7ZpfCjM2@cristina> <50F6D55A.80104@gmail.com> Message-ID: El día 16 de enero de 2013 17:29, Francesc Alted escribió: > On 1/16/13 4:34 PM, Jaime Perea wrote: > >> Cuando habláis de computación distribuida, ¿se refieres a python en >> entornos, >> digamos, mpi o sólo en memoria compartida?. > > No sé lo que piensa Chema en particular, pero para nosotros (Continuum), los > dos. Bajo el paraguas de "computación distribuida" caben muchas cosas. Si importa la escabilidad, entonces se deben evitar los sistemas de "memoria compartida". Pero hay más opciones que MPI como, por ejemplo, los sistemas que implementan el modelo Actor como hacen la librería Akka[1] (scala/java) y su imitación en python, Pykka[2], basada en gevents[3]. [1]: http://akka.io/ [2]: http://pykka.readthedocs.org/ [3]: http://www.gevent.org/ -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From jldalla en gmail.com Thu Jan 17 12:20:15 2013 From: jldalla en gmail.com (Jose Luis Dallapiccola) Date: Thu, 17 Jan 2013 08:20:15 -0300 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: Hola Carlos, muy buen día. Otra recomendación sería útilizar el módulo csv para la lectura y escritura de los datos, ya que veo que tienen un formato CSV. Saludos y éxitos! 2013/1/17 Jacobo Tarragón Cros > Hola Carlos, > > yo definiría los filtros como funciones y los aplicaría uno por uno a los > datos en el bucle de lectura. > > Si necesitas comparar filas arbitrarias, lo más sencillo es guardar los > datos leídos en memoria ?pero ten en cuenta que esto puede ser un problema > si tu conjunto de datos es demasiado grande. Para los casos que citas, sólo > sería necesario guardarse la fila nueva y la anterior. > > def cero_y_cien(nuevos, datos): > return not (nuevos[3] == '0' and nuevos[4] == '100') > > def valor_mayor(nuevos, datos): > # compara nuevos con la fila mas reciente de datos > return int(nuevos[4]) >= int(datos[-1][4]) > > datos = [] > filtros = (cero_y_cien, valor_mayor) > for linea in leer.readlines(): > nuevos = linea.strip().split(';') > datos.append(nuevos) > > for fn in filtros: > valido = fn(nuevos, datos) > > Si quieres comparar los datos independientemente ?por columnas? lo más > conveniente es convertir cada fila en una lista. ¿Qué quieres decir con que > te duplica el peso de los archivos? > > Un método un poco más sofisticado podría ser lanzar excepciones cuando un > filtro falla, y recogerlas en el bucle con un try/except: > > def cero_y_cien(nuevos, datos): > if (nuevos[3] == 0 and nuevos[4] == 100): > raise ValueError('las columnas 3 y 4 son 0 y 100 respectivamente') > > Personalmente no usaría numpy para este tratamiento de datos. > > No he probado el código pero espero que te sirva de orientación. > > Saludos, > Jacobo. > > El 17 de enero de 2013 11:10, Carlos Agulló Calvo escribió: > > Muchas gracias por la respuesta (y por la velocidad en ella) >> >> Aprovecha el for para aplicar tus filtros directamente ahí a medida que >> vas leyendo. Mete un par de ifs para tratar si es el principio o fin del >> fichero para comparar con el dato anterior (en fecha). >> >> Sí, pensaba aprovechar el for para poner los filtros. Lo de los ifs es >> buena idea para saber si es primera o última fila, pero lo que no se es >> comparar entre 2 filas cualquiera (p.ej la fila 11 y la 12). >> Por cierto, ¿es necesario pasar a listas las filas? es que se me duplica >> el peso de los archivos que ya de por si son bastante pesados. >> >> >> ¿Te has planteado usar numpy para esto o no es posible y debes usar >> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >> for que te ralentice el programa. >> >> No he usado nunca numpy, es más, ni siquiera sabía de su existencia. Soy >> bastante novato y el tratamiento de los datos es para un tema de la >> universidad, por lo que puedo usar lo que quiera, sólo que pensé que python >> era lo mejor y por eso me puse a aprenderlo por libre. Me voy a bajar numpy >> y matplotlib porque luego tendré que ponerme a hacer gráficos con los >> resultados. >> >> Un saludo >> >> El 17 de enero de 2013 10:56, Kiko escribió: >> >>> >>> >>> El 17 de enero de 2013 10:46, Carlos Agulló Calvo escribió: >>> >>> hola >>>> >>>> Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que >>>> están en un .txt desde entonces, he conseguido varios progresos, pero ahora >>>> me he quedado estancado en un punto del que no se salir. >>>> >>>> Mi duda consiste en lo siguiente: >>>> >>>> tengo los datos de la siguiente manera: >>>> >>>> "0303201";1/4/2009 >>>> 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 >>>> "0303201";1/4/2009 >>>> 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 >>>> (Es un extracto) >>>> >>>> y querría poder compararlos entre las filas para aplicar una serie de >>>> filtros y en función de si cumplen o no los filtros que vayan a archivos >>>> separados. >>>> >>>> He pensado que debería hacer que cada fila fuera una lista y por eso he >>>> hecho este programa: >>>> >>>> leer=open("datos.txt","r") >>>> lista=open("datos_lista.txt","a") >>>> validos=open("est_0303201_VAL.txt","a") >>>> no_validos=open("est_0303201_ERR.txt","a") >>>> >>>> for i in leer.readlines(): #con esto lee cada línea >>>> datos=i.strip().split(";") #guarda cada linea como una lista >>>> lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) >>>> las lineas como listas [,] >>>> >>>> >>>> >>>> leer.close() >>>> validos.close() >>>> >>>> que me crea 2 archivos vacíos y uno con los datos en forma de listas >>>> así: >>>> >>>> ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', >>>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>>> '-127', '0'] >>>> ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', >>>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>>> '-127', '0'] >>>> (es un extracto) >>>> >>>> El problema es que no sé cómo poner los filtros. >>>> >>>> Por ejemplo, quiero que si la columna en negrita 1 es cero y la >>>> columna en negrita 2 es 100 se considere error. >>>> >>>> o que en el siguiente ejemplo: >>>> >>>> ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, >>>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>>> '-127', '0'] >>>> ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, >>>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>>> '-127', '0'] >>>> (es un extracto) >>>> >>>> si en la fila 2 la columna en negrita es menor que en la fila 1 también >>>> de error. >>>> >>>> (luego pondría yo que me diga el filtro que no cumple, pero eso creo >>>> que lo sé hacer). >>>> >>>> ¿Podríais ayudarme? >>>> >>>> Muchas gracias >>>> >>>> >>>> >>> Aprovecha el for para aplicar tus filtros directamente ahí a medida que >>> vas leyendo. Mete un par de ifs para tratar si es el principio o fin del >>> fichero para comparar con el dato anterior (en fecha). >>> >>> ¿Te has planteado usar numpy para esto o no es posible y debes usar >>> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >>> for que te ralentice el programa. >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> http://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- --- José Luis DALLAPICCOLA Neuquén Capital Patagonia Argentina ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kausdiv en gmail.com Thu Jan 17 12:53:36 2013 From: kausdiv en gmail.com (kausdiv) Date: Thu, 17 Jan 2013 12:53:36 +0100 Subject: [Python-es] Conocer IP de un subdominio Message-ID: <50F7E640.7070501@gmail.com> Hola. Administro 2 servidores, en ambos hay alojados x dominios, con su correos, etc. Uno de ellos va a ser sustituido por otro y tengo que hacer el cambio de DNS. Lo que me gustaría hacer es un pequeño programa que pasandole un lista de dominios y subdominio me diga a qué ip apunta. Ejemplo: smtp.mi-dominio.com ó www.mi-dominio.com ahora lo hago uno a uno usando ping pero es lento y tedioso. ¿ se podría hacer en python ? From lodeale en gmail.com Thu Jan 17 13:06:00 2013 From: lodeale en gmail.com (ALEJANDRO ZAPIOLA) Date: Thu, 17 Jan 2013 12:06:00 +0000 Subject: [Python-es] Conocer IP de un subdominio In-Reply-To: <50F7E640.7070501@gmail.com> References: <50F7E640.7070501@gmail.com> Message-ID: Si fijate la parte de socket con Python te vas a dar idea sólo sino avisa. http://docs.python.org/2/library/socket.html mira getaddrinfo() saludos El 17 de enero de 2013 11:53, kausdiv escribió: > Hola. > > Administro 2 servidores, en ambos hay alojados x dominios, con su correos, > etc. > Uno de ellos va a ser sustituido por otro y tengo que hacer el cambio de > DNS. > > Lo que me gustaría hacer es un pequeño programa que pasandole un lista de > dominios y subdominio me diga a qué ip apunta. > Ejemplo: smtp.mi-dominio.com ó www.mi-dominio.com > > ahora lo hago uno a uno usando ping pero es lento y tedioso. > > ¿ se podría hacer en python ? > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rapto en arrakis.es Thu Jan 17 13:10:35 2013 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Thu, 17 Jan 2013 13:10:35 +0100 Subject: [Python-es] [OT] Re: Conocer IP de un subdominio In-Reply-To: <50F7E640.7070501@gmail.com> References: <50F7E640.7070501@gmail.com> Message-ID: <50F7EA3B.9090909@arrakis.es> El 17/01/13 12:53, kausdiv escribió: > Hola. > > Administro 2 servidores, en ambos hay alojados x dominios, con su > correos, etc. > Uno de ellos va a ser sustituido por otro y tengo que hacer el cambio > de DNS. > > Lo que me gustaría hacer es un pequeño programa que pasandole un lista > de dominios y subdominio me diga a qué ip apunta. > Ejemplo: smtp.mi-dominio.com ó www.mi-dominio.com > > ahora lo hago uno a uno usando ping pero es lento y tedioso. > Hola La resolución de nombre con ping es un efecto secundario, sería mucho más rápido usar host o dig: marcos en marcos-pc2:~$ host smtp.mi-dominio.com smtp.mi-dominio.com has address 66.45.246.139 Espero que esto te ayude From oscar.carballal en gmail.com Thu Jan 17 13:12:01 2013 From: oscar.carballal en gmail.com (Oscar Carballal) Date: Thu, 17 Jan 2013 13:12:01 +0100 Subject: [Python-es] Conocer IP de un subdominio In-Reply-To: <50F7E640.7070501@gmail.com> References: <50F7E640.7070501@gmail.com> Message-ID: Mira la primera respuesta de esta página (primer resultado en google buscando "resolve reverse dns python") http://stackoverflow.com/questions/2575760/python-lookup-hostname-from-ip-with-1-second-timeout Basta con importar el módulo socket y usar el método "gethostbyaddr" Un saludo El 17 de enero de 2013 12:53, kausdiv escribió: > Hola. > > Administro 2 servidores, en ambos hay alojados x dominios, con su correos, > etc. > Uno de ellos va a ser sustituido por otro y tengo que hacer el cambio de > DNS. > > Lo que me gustaría hacer es un pequeño programa que pasandole un lista de > dominios y subdominio me diga a qué ip apunta. > Ejemplo: smtp.mi-dominio.com ó www.mi-dominio.com > > ahora lo hago uno a uno usando ping pero es lento y tedioso. > > ¿ se podría hacer en python ? > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From faltet en gmail.com Thu Jan 17 13:35:03 2013 From: faltet en gmail.com (Francesc Alted) Date: Thu, 17 Jan 2013 13:35:03 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: <50F6B681.5060204@gmail.com> <3299671.hJ7ZpfCjM2@cristina> <50F6D55A.80104@gmail.com> Message-ID: <50F7EFF7.5000902@gmail.com> On 1/17/13 11:45 AM, Chema Cortes wrote: > El día 16 de enero de 2013 17:29, Francesc Alted escribió: >> On 1/16/13 4:34 PM, Jaime Perea wrote: >> >>> Cuando habláis de computación distribuida, ¿se refieres a python en >>> entornos, >>> digamos, mpi o sólo en memoria compartida?. >> No sé lo que piensa Chema en particular, pero para nosotros (Continuum), los >> dos. > Bajo el paraguas de "computación distribuida" caben muchas cosas. Si > importa la escabilidad, entonces se deben evitar los sistemas de > "memoria compartida". Pero hay más opciones que MPI como, por ejemplo, > los sistemas que implementan el modelo Actor como hacen la librería > Akka[1] (scala/java) y su imitación en python, Pykka[2], basada en > gevents[3]. En efecto, caben muchas cosas (no conocía los paquetes que mencionas, pero son interesantes). Un sistema de ficheros distribuido en el fondo es otra manera de comunicar datos entre diferentes nodos. Todo depende de lo que se quiera hacer. Por ejemplo, para hacer cálculos que requieran mucho trasiego de datos hay pocas cosas mejores que un paradigma de multihilos accediendo a la misma area de memoria (por ejemplo, coprocesadores como GPUs o Intel Xeon Phi funcionan así). Incluso sistemas con memoria compartida usando procesadores con arquitectura Intel tradicional se pueden llegar a configuraciones bastante potentes con 40 cores físicos y 750 GB de RAM (que ya está bien). Para cosas que requieren mas memoria hay que ir a sistemas distribuidos, y aquí MPI ahora mismo es el rey, ya que existen versiones optimizadas que permiter aprovechar al máximo el hardware de comunicaciones (por ejemplo, Infiniband). Entre estos extremos existe efectivamente un conjunto de soluciones realmente grande. -- Francesc Alted From kausdiv en gmail.com Thu Jan 17 13:36:33 2013 From: kausdiv en gmail.com (kausdiv) Date: Thu, 17 Jan 2013 13:36:33 +0100 Subject: [Python-es] Conocer IP de un subdominio In-Reply-To: References: <50F7E640.7070501@gmail.com> Message-ID: <50F7F051.9060808@gmail.com> Se ha borrado un adjunto en formato HTML... URL: From faltet en gmail.com Thu Jan 17 15:50:51 2013 From: faltet en gmail.com (Francesc Alted) Date: Thu, 17 Jan 2013 15:50:51 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: References: <50F6B681.5060204@gmail.com> <50F6D2B2.9000105@gmail.com> Message-ID: <50F80FCB.50309@gmail.com> On 1/17/13 10:49 AM, Chema Cortes wrote: > El día 16 de enero de 2013 17:17, Francesc Alted escribió: > >> Así que el tema de computación distribuida está definitavmente en nuestro >> radar. En particular, y dado lo caro que es el transporte de datos, y como >> se lee arriba, nuestro objetivo es llevar el código donde están los datos, y >> no al revés. Ahí es donde Numba (y LLVM) van a ser realmente importantes. > Excelente enfoque. Suena a nuevo "paradigma" en el tratamiento de datos. Es lo que se intenta, si. Travis Oliphant (nuestro CEO y creador de NumPy) tiene las ideas muy claras, y, a veces, inspiraciones tremendas. La verdad es que trabajar junto a el es un privilegio. Ahora queda por ver si podemos realizar todo lo que pasa por su mente, que no es poco :) -- Francesc Alted From pych3m4 en gmail.com Thu Jan 17 16:42:49 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 17 Jan 2013 16:42:49 +0100 Subject: [Python-es] Python y Julia para LLVM In-Reply-To: <50F80FCB.50309@gmail.com> References: <50F6B681.5060204@gmail.com> <50F6D2B2.9000105@gmail.com> <50F80FCB.50309@gmail.com> Message-ID: El día 17 de enero de 2013 15:50, Francesc Alted escribió: > On 1/17/13 10:49 AM, Chema Cortes wrote: > >> Excelente enfoque. Suena a nuevo "paradigma" en el tratamiento de datos. > > > Es lo que se intenta, si. Travis Oliphant (nuestro CEO y creador de NumPy) > tiene las ideas muy claras, y, a veces, inspiraciones tremendas. La verdad > es que trabajar junto a el es un privilegio. Ahora queda por ver si podemos > realizar todo lo que pasa por su mente, que no es poco :) Tuve noticia de Julia con este artículo de Jake Vanderplas: http://jakevdp.github.com/blog/2012/09/20/why-python-is-the-last/ En este artículo se comenta que haría falta que viniera otro Travis Oliphant capaz de unificar las comunidades python que trabajan en torno a la computación paralela y de alto rendimiento, señalando que bien podría ser el mismo Travis Oliphant que lo haga con numba. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From cm.agullo en gmail.com Thu Jan 17 17:51:20 2013 From: cm.agullo en gmail.com (=?ISO-8859-1?Q?Carlos_Agull=F3_Calvo?=) Date: Thu, 17 Jan 2013 17:51:20 +0100 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: Muchas gracias a todos. Como no sé utilizar ninguno de los módulos que habéis dicho los trastearé un poco a ver cual se adapta mejor a lo que necesito (o yo a él). ¿Si utilizara el modulo de CSV o lo hiciera sin módulo podría utilizar después el Matplotlib? Con respecto al código de Jacobo, aún no me he podido poner con ello, pero en cuanto pueda lo miraré con detalle. Un saludo a todos. El 17 de enero de 2013 12:20, Jose Luis Dallapiccola escribió: > Hola Carlos, muy buen día. > > Otra recomendación sería útilizar el módulo csv para la lectura y > escritura de los datos, ya que veo que tienen un formato CSV. > > Saludos y éxitos! > > > 2013/1/17 Jacobo Tarragón Cros > >> Hola Carlos, >> >> yo definiría los filtros como funciones y los aplicaría uno por uno a los >> datos en el bucle de lectura. >> >> Si necesitas comparar filas arbitrarias, lo más sencillo es guardar los >> datos leídos en memoria ?pero ten en cuenta que esto puede ser un problema >> si tu conjunto de datos es demasiado grande. Para los casos que citas, sólo >> sería necesario guardarse la fila nueva y la anterior. >> >> def cero_y_cien(nuevos, datos): >> return not (nuevos[3] == '0' and nuevos[4] == '100') >> >> def valor_mayor(nuevos, datos): >> # compara nuevos con la fila mas reciente de datos >> return int(nuevos[4]) >= int(datos[-1][4]) >> >> datos = [] >> filtros = (cero_y_cien, valor_mayor) >> for linea in leer.readlines(): >> nuevos = linea.strip().split(';') >> datos.append(nuevos) >> >> for fn in filtros: >> valido = fn(nuevos, datos) >> >> Si quieres comparar los datos independientemente ?por columnas? lo más >> conveniente es convertir cada fila en una lista. ¿Qué quieres decir con que >> te duplica el peso de los archivos? >> >> Un método un poco más sofisticado podría ser lanzar excepciones cuando un >> filtro falla, y recogerlas en el bucle con un try/except: >> >> def cero_y_cien(nuevos, datos): >> if (nuevos[3] == 0 and nuevos[4] == 100): >> raise ValueError('las columnas 3 y 4 son 0 y 100 respectivamente') >> >> Personalmente no usaría numpy para este tratamiento de datos. >> >> No he probado el código pero espero que te sirva de orientación. >> >> Saludos, >> Jacobo. >> >> El 17 de enero de 2013 11:10, Carlos Agulló Calvo escribió: >> >> Muchas gracias por la respuesta (y por la velocidad en ella) >>> >>> Aprovecha el for para aplicar tus filtros directamente ahí a medida que >>> vas leyendo. Mete un par de ifs para tratar si es el principio o fin del >>> fichero para comparar con el dato anterior (en fecha). >>> >>> Sí, pensaba aprovechar el for para poner los filtros. Lo de los ifs es >>> buena idea para saber si es primera o última fila, pero lo que no se es >>> comparar entre 2 filas cualquiera (p.ej la fila 11 y la 12). >>> Por cierto, ¿es necesario pasar a listas las filas? es que se me duplica >>> el peso de los archivos que ya de por si son bastante pesados. >>> >>> >>> ¿Te has planteado usar numpy para esto o no es posible y debes usar >>> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >>> for que te ralentice el programa. >>> >>> No he usado nunca numpy, es más, ni siquiera sabía de su existencia. Soy >>> bastante novato y el tratamiento de los datos es para un tema de la >>> universidad, por lo que puedo usar lo que quiera, sólo que pensé que python >>> era lo mejor y por eso me puse a aprenderlo por libre. Me voy a bajar numpy >>> y matplotlib porque luego tendré que ponerme a hacer gráficos con los >>> resultados. >>> >>> Un saludo >>> >>> El 17 de enero de 2013 10:56, Kiko escribió: >>> >>>> >>>> >>>> El 17 de enero de 2013 10:46, Carlos Agulló Calvo escribió: >>>> >>>> hola >>>>> >>>>> Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que >>>>> están en un .txt desde entonces, he conseguido varios progresos, pero ahora >>>>> me he quedado estancado en un punto del que no se salir. >>>>> >>>>> Mi duda consiste en lo siguiente: >>>>> >>>>> tengo los datos de la siguiente manera: >>>>> >>>>> "0303201";1/4/2009 >>>>> 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 >>>>> "0303201";1/4/2009 >>>>> 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 >>>>> (Es un extracto) >>>>> >>>>> y querría poder compararlos entre las filas para aplicar una serie de >>>>> filtros y en función de si cumplen o no los filtros que vayan a archivos >>>>> separados. >>>>> >>>>> He pensado que debería hacer que cada fila fuera una lista y por eso >>>>> he hecho este programa: >>>>> >>>>> leer=open("datos.txt","r") >>>>> lista=open("datos_lista.txt","a") >>>>> validos=open("est_0303201_VAL.txt","a") >>>>> no_validos=open("est_0303201_ERR.txt","a") >>>>> >>>>> for i in leer.readlines(): #con esto lee cada línea >>>>> datos=i.strip().split(";") #guarda cada linea como una lista >>>>> lista.write(str(datos)+"\n") #escribe en VALIDOS >>>>> (datos_lista.txt) las lineas como listas [,] >>>>> >>>>> >>>>> >>>>> leer.close() >>>>> validos.close() >>>>> >>>>> que me crea 2 archivos vacíos y uno con los datos en forma de listas >>>>> así: >>>>> >>>>> ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', >>>>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>>>> '-127', '0'] >>>>> ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', >>>>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>>>> '-127', '0'] >>>>> (es un extracto) >>>>> >>>>> El problema es que no sé cómo poner los filtros. >>>>> >>>>> Por ejemplo, quiero que si la columna en negrita 1 es cero y la >>>>> columna en negrita 2 es 100 se considere error. >>>>> >>>>> o que en el siguiente ejemplo: >>>>> >>>>> ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, >>>>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>>>> '-127', '0'] >>>>> ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, >>>>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>>>> '-127', '0'] >>>>> (es un extracto) >>>>> >>>>> si en la fila 2 la columna en negrita es menor que en la fila 1 >>>>> también de error. >>>>> >>>>> (luego pondría yo que me diga el filtro que no cumple, pero eso creo >>>>> que lo sé hacer). >>>>> >>>>> ¿Podríais ayudarme? >>>>> >>>>> Muchas gracias >>>>> >>>>> >>>>> >>>> Aprovecha el for para aplicar tus filtros directamente ahí a medida que >>>> vas leyendo. Mete un par de ifs para tratar si es el principio o fin del >>>> fichero para comparar con el dato anterior (en fecha). >>>> >>>> ¿Te has planteado usar numpy para esto o no es posible y debes usar >>>> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >>>> for que te ralentice el programa. >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> http://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> http://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > --- > José Luis DALLAPICCOLA > Neuquén Capital > Patagonia Argentina > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Thu Jan 17 18:41:49 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Thu, 17 Jan 2013 18:41:49 +0100 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: Matplotlib puede pintar listas de python puro o arrays de numpy, por lo que no es un problema cómo decidas recoger esos datos. On Jan 17, 2013 5:53 PM, "Carlos Agulló Calvo" wrote: > Muchas gracias a todos. > > Como no sé utilizar ninguno de los módulos que habéis dicho los trastearé > un poco a ver cual se adapta mejor a lo que necesito (o yo a él). > > ¿Si utilizara el modulo de CSV o lo hiciera sin módulo podría utilizar > después el Matplotlib? > > Con respecto al código de Jacobo, aún no me he podido poner con ello, pero > en cuanto pueda lo miraré con detalle. > > Un saludo a todos. > > El 17 de enero de 2013 12:20, Jose Luis Dallapiccola escribió: > >> Hola Carlos, muy buen día. >> >> Otra recomendación sería útilizar el módulo csv para la lectura y >> escritura de los datos, ya que veo que tienen un formato CSV. >> >> Saludos y éxitos! >> >> >> 2013/1/17 Jacobo Tarragón Cros >> >>> Hola Carlos, >>> >>> yo definiría los filtros como funciones y los aplicaría uno por uno a >>> los datos en el bucle de lectura. >>> >>> Si necesitas comparar filas arbitrarias, lo más sencillo es guardar los >>> datos leídos en memoria ?pero ten en cuenta que esto puede ser un problema >>> si tu conjunto de datos es demasiado grande. Para los casos que citas, sólo >>> sería necesario guardarse la fila nueva y la anterior. >>> >>> def cero_y_cien(nuevos, datos): >>> return not (nuevos[3] == '0' and nuevos[4] == '100') >>> >>> def valor_mayor(nuevos, datos): >>> # compara nuevos con la fila mas reciente de datos >>> return int(nuevos[4]) >= int(datos[-1][4]) >>> >>> datos = [] >>> filtros = (cero_y_cien, valor_mayor) >>> for linea in leer.readlines(): >>> nuevos = linea.strip().split(';') >>> datos.append(nuevos) >>> >>> for fn in filtros: >>> valido = fn(nuevos, datos) >>> >>> Si quieres comparar los datos independientemente ?por columnas? lo más >>> conveniente es convertir cada fila en una lista. ¿Qué quieres decir con que >>> te duplica el peso de los archivos? >>> >>> Un método un poco más sofisticado podría ser lanzar excepciones cuando >>> un filtro falla, y recogerlas en el bucle con un try/except: >>> >>> def cero_y_cien(nuevos, datos): >>> if (nuevos[3] == 0 and nuevos[4] == 100): >>> raise ValueError('las columnas 3 y 4 son 0 y 100 >>> respectivamente') >>> >>> Personalmente no usaría numpy para este tratamiento de datos. >>> >>> No he probado el código pero espero que te sirva de orientación. >>> >>> Saludos, >>> Jacobo. >>> >>> El 17 de enero de 2013 11:10, Carlos Agulló Calvo escribió: >>> >>> Muchas gracias por la respuesta (y por la velocidad en ella) >>>> >>>> Aprovecha el for para aplicar tus filtros directamente ahí a medida que >>>> vas leyendo. Mete un par de ifs para tratar si es el principio o fin del >>>> fichero para comparar con el dato anterior (en fecha). >>>> >>>> Sí, pensaba aprovechar el for para poner los filtros. Lo de los ifs es >>>> buena idea para saber si es primera o última fila, pero lo que no se es >>>> comparar entre 2 filas cualquiera (p.ej la fila 11 y la 12). >>>> Por cierto, ¿es necesario pasar a listas las filas? es que se me >>>> duplica el peso de los archivos que ya de por si son bastante pesados. >>>> >>>> >>>> ¿Te has planteado usar numpy para esto o no es posible y debes usar >>>> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >>>> for que te ralentice el programa. >>>> >>>> No he usado nunca numpy, es más, ni siquiera sabía de su existencia. >>>> Soy bastante novato y el tratamiento de los datos es para un tema de la >>>> universidad, por lo que puedo usar lo que quiera, sólo que pensé que python >>>> era lo mejor y por eso me puse a aprenderlo por libre. Me voy a bajar numpy >>>> y matplotlib porque luego tendré que ponerme a hacer gráficos con los >>>> resultados. >>>> >>>> Un saludo >>>> >>>> El 17 de enero de 2013 10:56, Kiko escribió: >>>> >>>>> >>>>> >>>>> El 17 de enero de 2013 10:46, Carlos Agulló Calvo >>>> > escribió: >>>>> >>>>> hola >>>>>> >>>>>> Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos >>>>>> que están en un .txt desde entonces, he conseguido varios progresos, pero >>>>>> ahora me he quedado estancado en un punto del que no se salir. >>>>>> >>>>>> Mi duda consiste en lo siguiente: >>>>>> >>>>>> tengo los datos de la siguiente manera: >>>>>> >>>>>> "0303201";1/4/2009 >>>>>> 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 >>>>>> "0303201";1/4/2009 >>>>>> 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 >>>>>> (Es un extracto) >>>>>> >>>>>> y querría poder compararlos entre las filas para aplicar una serie de >>>>>> filtros y en función de si cumplen o no los filtros que vayan a archivos >>>>>> separados. >>>>>> >>>>>> He pensado que debería hacer que cada fila fuera una lista y por eso >>>>>> he hecho este programa: >>>>>> >>>>>> leer=open("datos.txt","r") >>>>>> lista=open("datos_lista.txt","a") >>>>>> validos=open("est_0303201_VAL.txt","a") >>>>>> no_validos=open("est_0303201_ERR.txt","a") >>>>>> >>>>>> for i in leer.readlines(): #con esto lee cada línea >>>>>> datos=i.strip().split(";") #guarda cada linea como una lista >>>>>> lista.write(str(datos)+"\n") #escribe en VALIDOS >>>>>> (datos_lista.txt) las lineas como listas [,] >>>>>> >>>>>> >>>>>> >>>>>> leer.close() >>>>>> validos.close() >>>>>> >>>>>> que me crea 2 archivos vacíos y uno con los datos en forma de listas >>>>>> así: >>>>>> >>>>>> ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', >>>>>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>>>>> '-127', '0'] >>>>>> ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', >>>>>> '106', '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', >>>>>> '-127', '-127', '0'] >>>>>> (es un extracto) >>>>>> >>>>>> El problema es que no sé cómo poner los filtros. >>>>>> >>>>>> Por ejemplo, quiero que si la columna en negrita 1 es cero y la >>>>>> columna en negrita 2 es 100 se considere error. >>>>>> >>>>>> o que en el siguiente ejemplo: >>>>>> >>>>>> ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, >>>>>> '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', >>>>>> '-127', '0'] >>>>>> ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, >>>>>> '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', >>>>>> '-127', '0'] >>>>>> (es un extracto) >>>>>> >>>>>> si en la fila 2 la columna en negrita es menor que en la fila 1 >>>>>> también de error. >>>>>> >>>>>> (luego pondría yo que me diga el filtro que no cumple, pero eso creo >>>>>> que lo sé hacer). >>>>>> >>>>>> ¿Podríais ayudarme? >>>>>> >>>>>> Muchas gracias >>>>>> >>>>>> >>>>>> >>>>> Aprovecha el for para aplicar tus filtros directamente ahí a medida >>>>> que vas leyendo. Mete un par de ifs para tratar si es el principio o fin >>>>> del fichero para comparar con el dato anterior (en fecha). >>>>> >>>>> ¿Te has planteado usar numpy para esto o no es posible y debes usar >>>>> python puro? Numpy te podría facilitar mucho las cosas y librarte de algún >>>>> for que te ralentice el programa. >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> http://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> http://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> http://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> --- >> José Luis DALLAPICCOLA >> Neuquén Capital >> Patagonia Argentina >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From chakalinux en gmail.com Fri Jan 18 13:21:28 2013 From: chakalinux en gmail.com (chakalinux) Date: Fri, 18 Jan 2013 13:21:28 +0100 Subject: [Python-es] Tratar datos txt entre filas In-Reply-To: References: Message-ID: Por que no usas la función *map* ? precisamente hace eso, "compara" 2 listas y retorna según una condición, ejemplo: def Compara(x, y): if x > 100: return x l1 = (1,2,3,4,5,6, 100, 101) l2 = (1,2,3,0,0,6, 99, 100) filtro = map(Compara, l1, l2) print filtro [None, None, None, None, None, None, None, 101] Un saludo El 17 de enero de 2013 10:46, Carlos Agulló Calvo escribió: > hola > > Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que > están en un .txt desde entonces, he conseguido varios progresos, pero ahora > me he quedado estancado en un punto del que no se salir. > > Mi duda consiste en lo siguiente: > > tengo los datos de la siguiente manera: > > "0303201";1/4/2009 > 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0 > "0303201";1/4/2009 > 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0 > (Es un extracto) > > y querría poder compararlos entre las filas para aplicar una serie de > filtros y en función de si cumplen o no los filtros que vayan a archivos > separados. > > He pensado que debería hacer que cada fila fuera una lista y por eso he > hecho este programa: > > leer=open("datos.txt","r") > lista=open("datos_lista.txt","a") > validos=open("est_0303201_VAL.txt","a") > no_validos=open("est_0303201_ERR.txt","a") > > for i in leer.readlines(): #con esto lee cada línea > datos=i.strip().split(";") #guarda cada linea como una lista > lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) > las lineas como listas [,] > > > > leer.close() > validos.close() > > que me crea 2 archivos vacíos y uno con los datos en forma de listas así: > > ['"0303201"', '1/4/2005 0:01:00', *'2', '0'*, '0', '0', '0', '143', > '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', > '-127', '0'] > ['"0303201"', '1/4/2005 0:02:00', *'0', '100'*, '0', '0', '0', '106', > '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', > '-127', '0'] > (es un extracto) > > El problema es que no sé cómo poner los filtros. > > Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna > en negrita 2 es 100 se considere error. > > o que en el siguiente ejemplo: > > ['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', *'143'*, > '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', > '-127', '0'] > ['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', *'106'*, > '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', > '-127', '0'] > (es un extracto) > > si en la fila 2 la columna en negrita es menor que en la fila 1 también de > error. > > (luego pondría yo que me diga el filtro que no cumple, pero eso creo que > lo sé hacer). > > ¿Podríais ayudarme? > > Muchas gracias > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From sanreikaj.foros en gmail.com Mon Jan 21 00:06:25 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Sun, 20 Jan 2013 18:36:25 -0430 Subject: [Python-es] Clase de Clases Message-ID: Que tal comunidad, me gustaria pedirles una pequeña ayuda con algunas dudas que tengo en el desarrollo que estoy llevando a cabo, en el cual debo implementar una clase de clases. Coloco aqui un codigo de ejemplo en el que se puede apreciar claramente lo que quiero lograr... http://pastebin.com/2an7empb Como pueden ver tengo una clase Hija la cual hereda de la clase Base y a su vez sus miembros son instancias de la clase Miembro. Si se ejecuta el codigo se puede ver como se crean la instancias de las clases pero solo la clase Base es quien se destruye la clase miembro sigue instanciada lo que ocaciona que en una segunda instancia de la clase Hija tenga en memoria los datos guardados en la clase Miembro anterior. Algo fundamental es que la clase hija debe ser creada tal cual esta el ejemplo, es decir, de manera muy sencilla ya que este desarrollo es para un ORM y la clase Hija es la declaracion de una tabla. Les agradezco cualquier ayuda, idea o guia, cualquier dato sera bien apreciado. Gracias -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jbc.develop en gmail.com Mon Jan 21 02:22:21 2013 From: jbc.develop en gmail.com (Juan BC) Date: Sun, 20 Jan 2013 22:22:21 -0300 Subject: [Python-es] Clase de Clases In-Reply-To: References: Message-ID: particularmente el problema es que pusiste tu instancia de miembro en la clase y no la instancia. Si entendi bien tu problema lo que vos queres hacer es esto class Hija(Base): def __init__(self): super(Hija,self).__init__() self.Miembro1 = Miembro() la otra alternativa seria redefinit __del__ algo asi class Hija(Base): Miembro1 = Miembro def __del__(self): self Hija.Miembro1 El día 20 de enero de 2013 20:06, Alvaro Manrique escribió: > Que tal comunidad, me gustaria pedirles una pequeña ayuda con algunas dudas > que tengo > en el desarrollo que estoy llevando a cabo, en el cual debo implementar una > clase de clases. > > Coloco aqui un codigo de ejemplo en el que se puede apreciar claramente lo > que quiero lograr... > > http://pastebin.com/2an7empb > > Como pueden ver tengo una clase Hija la cual hereda de la clase Base y a su > vez sus miembros son instancias de la clase Miembro. > > Si se ejecuta el codigo se puede ver como se crean la instancias de las > clases pero solo la clase Base es quien se destruye la clase miembro sigue > instanciada lo que ocaciona que en una segunda instancia de la clase Hija > tenga en memoria los datos guardados en la clase Miembro anterior. > > Algo fundamental es que la clase hija debe ser creada tal cual esta el > ejemplo, es decir, de manera muy sencilla ya que este desarrollo es para un > ORM y la clase Hija es la declaracion de una tabla. > > Les agradezco cualquier ayuda, idea o guia, cualquier dato sera bien > apreciado. > > Gracias > > -------------------------------------------------------------- > Alvaro Manrique > Programador > Venezuela > Skype: alvaromanrique84 > Twitter: @AJ_Manrique > --------------------------------------------------------------- > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Juan B Cabral From sanreikaj.foros en gmail.com Mon Jan 21 04:40:58 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Sun, 20 Jan 2013 23:10:58 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: References: Message-ID: Hola Juan, gracias por responder; Pensé en algo así pero la clase hija o dicho de otra manera la implementación de las clases debe ser muy sencilla, es decir, ya que todo esto forma el núcleo de un ORM la clase hija seria esto: class tabla(Base): campo1 = Miembro campo2 = Miembro Donde la clase base es una clase contenedora de métodos para el manejo de la conexión a la bd así como generar los distintos sql para el manejo de los datos. La clase Miembro es una clase contenedora de métodos propios para los campos, como por ejemplo el almacenado de su valor para ser aplicado en el Where de la consulta sql. Entonces al definir la clase hija lo que se hace es crear el mapeo de una tabla, por eso la necesidad de que la creación de la clase sea lo mas sencilla posible. Estoy investigando y leyendo bastante y creo que mi camino es implementar correctamente las metaclases y no dos clases separadas como lo tengo ahorita, si tienen alguna idea en este aspecto se los agradezco mucho. -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 20 de enero de 2013 20:52, Juan BC escribió: > particularmente el problema es que pusiste tu instancia de miembro en > la clase y no la instancia. Si entendi bien tu problema lo que vos > queres hacer es esto > > class Hija(Base): > > def __init__(self): > super(Hija,self).__init__() > self.Miembro1 = Miembro() > > > la otra alternativa seria redefinit __del__ algo asi > > class Hija(Base): > > Miembro1 = Miembro > > def __del__(self): > self Hija.Miembro1 > > > El día 20 de enero de 2013 20:06, Alvaro Manrique > escribió: > > Que tal comunidad, me gustaria pedirles una pequeña ayuda con algunas > dudas > > que tengo > > en el desarrollo que estoy llevando a cabo, en el cual debo implementar > una > > clase de clases. > > > > Coloco aqui un codigo de ejemplo en el que se puede apreciar claramente > lo > > que quiero lograr... > > > > http://pastebin.com/2an7empb > > > > Como pueden ver tengo una clase Hija la cual hereda de la clase Base y a > su > > vez sus miembros son instancias de la clase Miembro. > > > > Si se ejecuta el codigo se puede ver como se crean la instancias de las > > clases pero solo la clase Base es quien se destruye la clase miembro > sigue > > instanciada lo que ocaciona que en una segunda instancia de la clase Hija > > tenga en memoria los datos guardados en la clase Miembro anterior. > > > > Algo fundamental es que la clase hija debe ser creada tal cual esta el > > ejemplo, es decir, de manera muy sencilla ya que este desarrollo es para > un > > ORM y la clase Hija es la declaracion de una tabla. > > > > Les agradezco cualquier ayuda, idea o guia, cualquier dato sera bien > > apreciado. > > > > Gracias > > > > -------------------------------------------------------------- > > Alvaro Manrique > > Programador > > Venezuela > > Skype: alvaromanrique84 > > Twitter: @AJ_Manrique > > --------------------------------------------------------------- > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > -- > Juan B Cabral > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From olemis en gmail.com Mon Jan 21 07:35:48 2013 From: olemis en gmail.com (Olemis Lang) Date: Mon, 21 Jan 2013 01:35:48 -0500 Subject: [Python-es] Clase de Clases In-Reply-To: References: Message-ID: On 1/20/13, Alvaro Manrique wrote: > [...] > > o dicho de otra manera la > implementación de las clases debe ser muy sencilla, es decir, ya que todo > esto forma el núcleo de un ORM la clase hija seria esto: > > class tabla(Base): > > campo1 = Miembro > campo2 = Miembro > [...] > > La clase Miembro es una clase contenedora de métodos propios para los > campos, como por ejemplo el almacenado de su valor para ser aplicado en el > Where de la consulta sql. > esto m suena a descriptores ... ;) [...] > > Estoy investigando y leyendo bastante y creo que mi camino es implementar > correctamente las metaclases y no dos clases separadas como lo tengo > ahorita, si tienen alguna idea en este aspecto se los agradezco mucho. > Ver cómo lo hacen otros ORM e.g. SqlAlchemy , SqlObject ... Django ... -- Regards, Olemis. Blog ES: http://simelo-es.blogspot.com/ Blog EN: http://simelo-en.blogspot.com/ Featured article: From sanreikaj.foros en gmail.com Mon Jan 21 07:58:07 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Mon, 21 Jan 2013 02:28:07 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: References: Message-ID: Si he tratado de seguirle la pista al ORM de Django pero la verdad es que sale de mi comprensión ya que aun me pierdo con las benditas metaclases. Estoy probando esto, pero de igual manera no logro que finalice la instancia de la clase Miembro: class MetaMiembro(object): def __init__(self): print "Inicio de la clase Miembro" self.dato="" def __del__(self): print "Fin de la clase Miembro" def setDato(self, dato): self.dato = dato def getDato(self): print self.dato class Base(object): def __init__(self): print "Inicio de la clase Base" def __del__(self): print "Fin de la clase Base" class Miembro(MetaMiembro): pass class Hija(Base): Miembro1 = Base.Miembro() c = Hija() c.Miembro1.setDato("1era instancia") print c.Miembro1.getDato() del(c) d = Hija() print d.Miembro1.getDato() del(d) Si pruebas el código se puede ver como en la segunda instancia de la clase hija recupero el valor asignado en la primera. Denme una manito porfa!!! :-s -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 02:05, Olemis Lang escribió: > On 1/20/13, Alvaro Manrique wrote: > > > [...] > > > > o dicho de otra manera la > > implementación de las clases debe ser muy sencilla, es decir, ya que todo > > esto forma el núcleo de un ORM la clase hija seria esto: > > > > class tabla(Base): > > > > campo1 = Miembro > > campo2 = Miembro > > > [...] > > > > La clase Miembro es una clase contenedora de métodos propios para los > > campos, como por ejemplo el almacenado de su valor para ser aplicado en > el > > Where de la consulta sql. > > > > esto m suena a descriptores ... ;) > > [...] > > > > Estoy investigando y leyendo bastante y creo que mi camino es implementar > > correctamente las metaclases y no dos clases separadas como lo tengo > > ahorita, si tienen alguna idea en este aspecto se los agradezco mucho. > > > > Ver cómo lo hacen otros ORM e.g. SqlAlchemy , SqlObject ... Django ... > > -- > Regards, > > Olemis. > > Blog ES: http://simelo-es.blogspot.com/ > Blog EN: http://simelo-en.blogspot.com/ > > Featured article: > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Mon Jan 21 10:30:43 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 21 Jan 2013 10:30:43 +0100 Subject: [Python-es] Clase de Clases In-Reply-To: References: Message-ID: El día 21 de enero de 2013 07:58, Alvaro Manrique escribió: > Si pruebas el código se puede ver como en la segunda instancia de la clase > hija recupero el valor asignado en la primera. > > Denme una manito porfa!!! :-s Creo que tienes un error de concepto. Estás viendo las definiciones de clase como si fueran bloques de código que se ejecutan en cada instanciación. El único modo para que se ejecute código distinto en cada instanciación es que ése código sea parte de un método, tal como te indicaba Juan BC. Sin éso, todas las instancias compartirán los mismos atributos y métodos de clase. No entiendo bien qué quieres hacer, pero siempre puedes probar a hacerlo en dos pasos: c = Hija() c.Miembro1 = Miembro() Metería ésto en un método __new__ de alguna forma, tal vez como parte de una metaclase; pero sin saber más no puedo orientarte. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From scamps en earcon.com Mon Jan 21 11:56:50 2013 From: scamps en earcon.com (Santi Camps) Date: Mon, 21 Jan 2013 11:56:50 +0100 Subject: [Python-es] =?iso-8859-1?q?Liberaci=F3n_de_KMKey_versi=F3n_Zapata?= =?iso-8859-1?q?_=5BANUNCIO=5D?= Message-ID: Hola lista A los desarrolladores de KMKey nos complace anunciar la liberación de la versión Zapata. Se puede obtener más información del producto y como descargarlo en nuestro blog comunitario , donde encontraréis incluso una máquina virtualmontada. Si preferís instalar en nativo (sólo GNU/Linux), en la web del proyecto en JOINUP hemos dejado un instalador para Debian y BBDD con configuraciones de muestra. Si alguien prefiere CENTOS puede leerse las notas sobre su instalación. Para quien no lo conozca, KMKey (Knowledge Management Key) es un software libre , con licencia GPL v2, con la que se implementan multitud de soluciones de gestión en un entorno web, destacando las configuraciones de gestión de calidad y gestión de proyectos. Se encuentra desarrollado en lenguaje Python sobre el servidor de aplicaciones Zope y el gestor de contenidos CPS , y su principal utilidad es ofrecer una plataforma que cruza la gestión de procesos con la gestión de contenidos y un cuadro de mando, convirtiéndolo en un entorno colaborativo tremendamente útil para cualquier empresa de servicios. Como valor añadido, el producto tiene una larga trayectoria empresarial y se encuentra en producción en multitud de empresas y organizaciones de toda España y América Latina. Esperamos que os resulte de la máxima utilidad Saludos -- Santi Camps Earcon S.L. (http://www.earcon.com) ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From listas en soft-com.es Mon Jan 21 13:08:35 2013 From: listas en soft-com.es (Oswaldo) Date: Mon, 21 Jan 2013 13:08:35 +0100 Subject: [Python-es] Clase de Clases In-Reply-To: References: Message-ID: <50FD2FC3.8050304@soft-com.es> El 21/01/2013 7:58, Alvaro Manrique escribió: > > Estoy probando esto, pero de igual manera no logro que finalice la > instancia de la clase Miembro: > Cuando haces: class Hija(Base): Miembro1 = Miembro() Miembro1 es una propiedad de la clase, no de la instancia. Se crea una instancia Miembro() con la definición de la clase que compartirán todas las instancias de la clase Hija. Por eso no se destruye al eliminar las instancias de la clase Hija. Si en tu ejemplo creas varias instancias de Hija verás que comparten la misma instancia de Miembro: >>> c = Hija() >>> print id(c.Miembro1) 31214288 >>> c1 = Hija() >>> print id(c1.Miembro1) 31214288 A mi parecer eso no está ni bien ni mal, es simplemente como lo quieras hacer. Si los datos de miembro van a ser de solo lectura la implementacion de esta forma puede ser correcta, pero si las instancias de Hija van a modificar valores de Miembro vas camino del desastre ;) Un saludo, -- Oswaldo From sanreikaj.foros en gmail.com Mon Jan 21 16:00:38 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Mon, 21 Jan 2013 10:30:38 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: <50FD2FC3.8050304@soft-com.es> References: <50FD2FC3.8050304@soft-com.es> Message-ID: Gracias Chema y Oswaldo Emmm tomando lo ultimo que dices Oswaldo ya estoy en el desastre jejeje, mi problema es tal cual lo planteas. Planteo el problema de esta manera: Necesito que la clase Hija herede de la clase base para que tenga sus métodos y atributos, hasta aquí todo bien. Luego los atributos de la clase hija también deben ser objetos ya que ellos deben manejar sus propios atributos y métodos, aquí es donde nace la idea de que sean instancias de otra clase aparte y de hecho hasta aquí todo funciona de maravilla el problema es cuando necesito crear otra instancia de la misma clase hija. Si pudiese lograr que cuando se destruya la instancia de la clase hija también lo hagan sus atributos seria la solución, pero como dices Chema quizá es problema de concepto. Ya he probado por todas las vías a mi alcance y no logro dar con una solución. Les agradezco sus valiosos comentarios. -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 07:38, Oswaldo escribió: > El 21/01/2013 7:58, Alvaro Manrique escribió: > > >> Estoy probando esto, pero de igual manera no logro que finalice la >> instancia de la clase Miembro: >> >> > Cuando haces: > > class Hija(Base): > Miembro1 = Miembro() > > Miembro1 es una propiedad de la clase, no de la instancia. Se crea una > instancia Miembro() con la definición de la clase que compartirán todas las > instancias de la clase Hija. Por eso no se destruye al eliminar las > instancias de la clase Hija. > > Si en tu ejemplo creas varias instancias de Hija verás que comparten la > misma instancia de Miembro: > > >>> c = Hija() > >>> print id(c.Miembro1) > 31214288 > >>> c1 = Hija() > >>> print id(c1.Miembro1) > 31214288 > > > A mi parecer eso no está ni bien ni mal, es simplemente como lo quieras > hacer. Si los datos de miembro van a ser de solo lectura la implementacion > de esta forma puede ser correcta, pero si las instancias de Hija van a > modificar valores de Miembro vas camino del desastre ;) > > Un saludo, > > -- > Oswaldo > > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Mon Jan 21 16:43:41 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Mon, 21 Jan 2013 16:43:41 +0100 Subject: [Python-es] Clase de Clases In-Reply-To: <50FD2FC3.8050304@soft-com.es> References: <50FD2FC3.8050304@soft-com.es> Message-ID: Si quieres que cada instancia llame a instancias de las subclases diferentes, deberías llamarlas en el init. Pero no estoy seguro de haber entendido tu problema, así que a lo mejor no es esto lo que estás buscando. On Jan 21, 2013 1:18 PM, "Oswaldo" wrote: > El 21/01/2013 7:58, Alvaro Manrique escribió: > >> >> Estoy probando esto, pero de igual manera no logro que finalice la >> instancia de la clase Miembro: >> >> > Cuando haces: > > class Hija(Base): > Miembro1 = Miembro() > > Miembro1 es una propiedad de la clase, no de la instancia. Se crea una > instancia Miembro() con la definición de la clase que compartirán todas las > instancias de la clase Hija. Por eso no se destruye al eliminar las > instancias de la clase Hija. > > Si en tu ejemplo creas varias instancias de Hija verás que comparten la > misma instancia de Miembro: > > >>> c = Hija() > >>> print id(c.Miembro1) > 31214288 > >>> c1 = Hija() > >>> print id(c1.Miembro1) > 31214288 > > > A mi parecer eso no está ni bien ni mal, es simplemente como lo quieras > hacer. Si los datos de miembro van a ser de solo lectura la implementacion > de esta forma puede ser correcta, pero si las instancias de Hija van a > modificar valores de Miembro vas camino del desastre ;) > > Un saludo, > > -- > Oswaldo > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From go.vergara.a en gmail.com Mon Jan 21 16:47:28 2013 From: go.vergara.a en gmail.com (Gonzalo Alejandro Vergara Almonacid) Date: Mon, 21 Jan 2013 12:47:28 -0300 Subject: [Python-es] Clase de Clases In-Reply-To: <50FD2FC3.8050304@soft-com.es> References: <50FD2FC3.8050304@soft-com.es> Message-ID: Puedes probar algo como esto class Hija(Base): def __init__(self): self.miembro = Miembro(); espero ayude, saludos El 21 de enero de 2013 09:08, Oswaldo escribió: > El 21/01/2013 7:58, Alvaro Manrique escribió: > > >> Estoy probando esto, pero de igual manera no logro que finalice la >> instancia de la clase Miembro: >> >> > Cuando haces: > > class Hija(Base): > Miembro1 = Miembro() > > Miembro1 es una propiedad de la clase, no de la instancia. Se crea una > instancia Miembro() con la definición de la clase que compartirán todas las > instancias de la clase Hija. Por eso no se destruye al eliminar las > instancias de la clase Hija. > > Si en tu ejemplo creas varias instancias de Hija verás que comparten la > misma instancia de Miembro: > > >>> c = Hija() > >>> print id(c.Miembro1) > 31214288 > >>> c1 = Hija() > >>> print id(c1.Miembro1) > 31214288 > > > A mi parecer eso no está ni bien ni mal, es simplemente como lo quieras > hacer. Si los datos de miembro van a ser de solo lectura la implementacion > de esta forma puede ser correcta, pero si las instancias de Hija van a > modificar valores de Miembro vas camino del desastre ;) > > Un saludo, > > -- > Oswaldo > > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From sanreikaj.foros en gmail.com Mon Jan 21 17:05:46 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Mon, 21 Jan 2013 11:35:46 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> Message-ID: Estoy probando esto... http://pastebin.com/asbyumjW Sin embargo tengo el mismo resultado, pero que me dicen... Voy por buen camino?? -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 11:17, Gonzalo Alejandro Vergara Almonacid < go.vergara.a en gmail.com> escribió: > Puedes probar algo como esto > > class Hija(Base): > > def __init__(self): > self.miembro = Miembro(); > > > espero ayude, saludos > > > El 21 de enero de 2013 09:08, Oswaldo escribió: > > El 21/01/2013 7:58, Alvaro Manrique escribió: >> >> >>> Estoy probando esto, pero de igual manera no logro que finalice la >>> instancia de la clase Miembro: >>> >>> >> Cuando haces: >> >> class Hija(Base): >> Miembro1 = Miembro() >> >> Miembro1 es una propiedad de la clase, no de la instancia. Se crea una >> instancia Miembro() con la definición de la clase que compartirán todas las >> instancias de la clase Hija. Por eso no se destruye al eliminar las >> instancias de la clase Hija. >> >> Si en tu ejemplo creas varias instancias de Hija verás que comparten la >> misma instancia de Miembro: >> >> >>> c = Hija() >> >>> print id(c.Miembro1) >> 31214288 >> >>> c1 = Hija() >> >>> print id(c1.Miembro1) >> 31214288 >> >> >> A mi parecer eso no está ni bien ni mal, es simplemente como lo quieras >> hacer. Si los datos de miembro van a ser de solo lectura la implementacion >> de esta forma puede ser correcta, pero si las instancias de Hija van a >> modificar valores de Miembro vas camino del desastre ;) >> >> Un saludo, >> >> -- >> Oswaldo >> >> ______________________________**_________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/**mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.**com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From listas en soft-com.es Mon Jan 21 18:35:07 2013 From: listas en soft-com.es (Oswaldo) Date: Mon, 21 Jan 2013 18:35:07 +0100 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> Message-ID: <50FD7C4B.3080004@soft-com.es> El 21/01/2013 17:05, Alvaro Manrique escribió: > Estoy probando esto... > > http://pastebin.com/asbyumjW > > Sin embargo tengo el mismo resultado, pero que me dicen... Voy por buen > camino?? > > Como ya te han dicho para que cada instancia de la clase hija tenga sus instancias independientes de miembro tienes que crearlas en el __init__ (No se ahora mismo si con metaclases se podría conseguir también). Y si lo que quieres en simplicidad a la hora de definir las clases hijas te lo tendrás que montar para hacer una definición que utilice el init de la base posteriormente. Por ejemplo: >>> class base(object): ... atributos = {} # diccionario {"nombreatributo": clase,} ... def __init__(self): ... for k in self.atributos: ... setattr(self, k, self.atributos[k]()) ... >>> class hija(base): ... atributos = { ... "Miembro1": Miembro, ... "Miembro2": Miembro, ... } ... >>> h1 = hija() Inicio de la clase Miembro Inicio de la clase Miembro >>> h2 = hija() Inicio de la clase Miembro Inicio de la clase Miembro >>> >>> print id(h1.Miembro1) 31243504 >>> print id(h2.Miembro1) 31243664 >>> >>> del h1 Fin de la clase Miembro Fin de la clase Miembro >>> del h2 Fin de la clase Miembro Fin de la clase Miembro >>> -- Oswaldo From sanreikaj.foros en gmail.com Mon Jan 21 19:30:56 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Mon, 21 Jan 2013 14:00:56 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: <50FD7C4B.3080004@soft-com.es> References: <50FD2FC3.8050304@soft-com.es> <50FD7C4B.3080004@soft-com.es> Message-ID: ok voy a probar implementar lo que me indicas en la metaclase, vamos a ver que tal... -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 13:05, Oswaldo escribió: > El 21/01/2013 17:05, Alvaro Manrique escribió: > > Estoy probando esto... >> >> http://pastebin.com/asbyumjW >> >> Sin embargo tengo el mismo resultado, pero que me dicen... Voy por buen >> camino?? >> >> >> > Como ya te han dicho para que cada instancia de la clase hija tenga sus > instancias independientes de miembro tienes que crearlas en el __init__ (No > se ahora mismo si con metaclases se podría conseguir también). > > Y si lo que quieres en simplicidad a la hora de definir las clases hijas > te lo tendrás que montar para hacer una definición que utilice el init de > la base posteriormente. Por ejemplo: > > > >>> class base(object): > ... atributos = {} # diccionario {"nombreatributo": clase,} > ... def __init__(self): > ... for k in self.atributos: > ... setattr(self, k, self.atributos[k]()) > ... > >>> class hija(base): > ... atributos = { > ... "Miembro1": Miembro, > ... "Miembro2": Miembro, > ... } > ... > >>> h1 = hija() > > Inicio de la clase Miembro > Inicio de la clase Miembro > >>> h2 = hija() > > Inicio de la clase Miembro > Inicio de la clase Miembro > >>> > >>> print id(h1.Miembro1) > 31243504 > >>> print id(h2.Miembro1) > 31243664 > >>> > >>> del h1 > > Fin de la clase Miembro > Fin de la clase Miembro > >>> del h2 > > Fin de la clase Miembro > Fin de la clase Miembro > >>> > > > > -- > Oswaldo > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From sanreikaj.foros en gmail.com Mon Jan 21 20:35:29 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Mon, 21 Jan 2013 15:05:29 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> <50FD7C4B.3080004@soft-com.es> Message-ID: Tengo que rendirme con las metaclases :( (por ahorita!!! jejeje) Siguiendo tu ejemplo voy a solucionar de esta manera... http://pastebin.com/17izeDuZ Modifiqué el ejemplo con los nombres mas reales para que se aprecie mejor la aplicación y así quizá le sirva a otra persona como base para un desarrollo mas amplio. Ahora a mi me queda la pequeña tarea de aplicar la solución al desarrollo real :-s jeje Muchas gracias por la ayuda, como siempre es invaluable. -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 14:00, Alvaro Manrique escribió: > ok voy a probar implementar lo que me indicas en la metaclase, vamos a ver > que tal... > > > -------------------------------------------------------------- > *Alvaro Manrique* > *Programador* > *Venezuela* > *Skype: alvaromanrique84* > *Twitter: @AJ_Manrique * > --------------------------------------------------------------- > > > El 21 de enero de 2013 13:05, Oswaldo escribió: > > El 21/01/2013 17:05, Alvaro Manrique escribió: >> >> Estoy probando esto... >>> >>> http://pastebin.com/asbyumjW >>> >>> Sin embargo tengo el mismo resultado, pero que me dicen... Voy por buen >>> camino?? >>> >>> >>> >> Como ya te han dicho para que cada instancia de la clase hija tenga sus >> instancias independientes de miembro tienes que crearlas en el __init__ (No >> se ahora mismo si con metaclases se podría conseguir también). >> >> Y si lo que quieres en simplicidad a la hora de definir las clases hijas >> te lo tendrás que montar para hacer una definición que utilice el init de >> la base posteriormente. Por ejemplo: >> >> >> >>> class base(object): >> ... atributos = {} # diccionario {"nombreatributo": clase,} >> ... def __init__(self): >> ... for k in self.atributos: >> ... setattr(self, k, self.atributos[k]()) >> ... >> >>> class hija(base): >> ... atributos = { >> ... "Miembro1": Miembro, >> ... "Miembro2": Miembro, >> ... } >> ... >> >>> h1 = hija() >> >> Inicio de la clase Miembro >> Inicio de la clase Miembro >> >>> h2 = hija() >> >> Inicio de la clase Miembro >> Inicio de la clase Miembro >> >>> >> >>> print id(h1.Miembro1) >> 31243504 >> >>> print id(h2.Miembro1) >> 31243664 >> >>> >> >>> del h1 >> >> Fin de la clase Miembro >> Fin de la clase Miembro >> >>> del h2 >> >> Fin de la clase Miembro >> Fin de la clase Miembro >> >>> >> >> >> >> -- >> Oswaldo >> ______________________________**_________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/**mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.**com/ >> > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jbc.develop en gmail.com Mon Jan 21 20:38:25 2013 From: jbc.develop en gmail.com (Juan BC) Date: Mon, 21 Jan 2013 16:38:25 -0300 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> <50FD7C4B.3080004@soft-com.es> Message-ID: esos "setDato" me duelen bastante mi orgullo pythonico. Podrías reemplazarlos por algo mas python-like como properties De todas maneras, en mi opinión, todos estamos opinando de un problema que no sabemos bien de que trata. Creo que deberías explicarnos con mas detalle cual es tu dominio y por que tu solución fue implementar un ORM desde cero y no utilizar un librería existente. El día 21 de enero de 2013 16:35, Alvaro Manrique escribió: > Tengo que rendirme con las metaclases :( (por ahorita!!! jejeje) > > Siguiendo tu ejemplo voy a solucionar de esta manera... > > http://pastebin.com/17izeDuZ > > Modifiqué el ejemplo con los nombres mas reales para que se aprecie mejor la > aplicación y así quizá le sirva a otra persona como base para un desarrollo > mas amplio. > > Ahora a mi me queda la pequeña tarea de aplicar la solución al desarrollo > real :-s jeje > > Muchas gracias por la ayuda, como siempre es invaluable. > > > -------------------------------------------------------------- > Alvaro Manrique > Programador > Venezuela > Skype: alvaromanrique84 > Twitter: @AJ_Manrique > --------------------------------------------------------------- > > > El 21 de enero de 2013 14:00, Alvaro Manrique > escribió: > >> ok voy a probar implementar lo que me indicas en la metaclase, vamos a ver >> que tal... >> >> >> -------------------------------------------------------------- >> Alvaro Manrique >> Programador >> Venezuela >> Skype: alvaromanrique84 >> Twitter: @AJ_Manrique >> --------------------------------------------------------------- >> >> >> El 21 de enero de 2013 13:05, Oswaldo escribió: >> >>> El 21/01/2013 17:05, Alvaro Manrique escribió: >>> >>>> Estoy probando esto... >>>> >>>> http://pastebin.com/asbyumjW >>>> >>>> Sin embargo tengo el mismo resultado, pero que me dicen... Voy por buen >>>> camino?? >>>> >>>> >>> >>> Como ya te han dicho para que cada instancia de la clase hija tenga sus >>> instancias independientes de miembro tienes que crearlas en el __init__ (No >>> se ahora mismo si con metaclases se podría conseguir también). >>> >>> Y si lo que quieres en simplicidad a la hora de definir las clases hijas >>> te lo tendrás que montar para hacer una definición que utilice el init de la >>> base posteriormente. Por ejemplo: >>> >>> >>> >>> class base(object): >>> ... atributos = {} # diccionario {"nombreatributo": clase,} >>> ... def __init__(self): >>> ... for k in self.atributos: >>> ... setattr(self, k, self.atributos[k]()) >>> ... >>> >>> class hija(base): >>> ... atributos = { >>> ... "Miembro1": Miembro, >>> ... "Miembro2": Miembro, >>> ... } >>> ... >>> >>> h1 = hija() >>> >>> Inicio de la clase Miembro >>> Inicio de la clase Miembro >>> >>> h2 = hija() >>> >>> Inicio de la clase Miembro >>> Inicio de la clase Miembro >>> >>> >>> >>> print id(h1.Miembro1) >>> 31243504 >>> >>> print id(h2.Miembro1) >>> 31243664 >>> >>> >>> >>> del h1 >>> >>> Fin de la clase Miembro >>> Fin de la clase Miembro >>> >>> del h2 >>> >>> Fin de la clase Miembro >>> Fin de la clase Miembro >>> >>> >>> >>> >>> >>> -- >>> Oswaldo >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> http://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Juan B Cabral From pych3m4 en gmail.com Mon Jan 21 22:21:46 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 21 Jan 2013 22:21:46 +0100 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> Message-ID: El día 21 de enero de 2013 16:00, Alvaro Manrique escribió: > Gracias Chema y Oswaldo > > Emmm tomando lo ultimo que dices Oswaldo ya estoy en el desastre jejeje, mi > problema es tal cual lo planteas. > > Planteo el problema de esta manera: > > Necesito que la clase Hija herede de la clase base para que tenga sus > métodos y atributos, hasta aquí todo bien. > > Luego los atributos de la clase hija también deben ser objetos ya que ellos > deben manejar sus propios atributos y métodos, aquí es donde nace la idea de > que sean instancias de otra clase aparte y de hecho hasta aquí todo funciona > de maravilla el problema es cuando necesito crear otra instancia de la misma > clase hija. > > Si pudiese lograr que cuando se destruya la instancia de la clase hija > también lo hagan sus atributos seria la solución, pero como dices Chema > quizá es problema de concepto. Lo que me despista es la comparación con un ORM. Que los atributos se comporten como objetos es lo normal, en python todo son objetos. El problema parece ser que no quieres que sean atributos compartidos por todas las instancias (atributos de clase). Entonces tendrás que declararlos dentro de algún método de inicialización o de creación de la instancia. Si por lo que veo, cada instancia dices que quieres que tenga su conexión, y no quieres que se comparta entre instancias, entonces tienes dos opciones: 1) crea la conexión al inicializar la instancia (método __init__) 2) crea la conexión fuera de la definición de la clase y se la añades como atributo a la instancia Tal vez pueda serte útil echar un vistazo a la teoría de "Patrones de Diseño", en concreto los patrones estructurales como Facade: http://es.wikipedia.org/wiki/Patrón_de_diseño http://www.etnassoft.com/biblioteca/design-patterns-in-python/ -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From sanreikaj.foros en gmail.com Mon Jan 21 23:25:54 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Mon, 21 Jan 2013 17:55:54 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> <50FD7C4B.3080004@soft-com.es> Message-ID: -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 15:08, Juan BC escribió: > esos "setDato" me duelen bastante mi orgullo pythonico. Podrías > reemplazarlos por algo mas python-like como properties > jejeje si tienes razón, también los implemento como properties, solo que el ejemplo lo escribí así sin pararme mucho en la forma solo para ilustrar mi problema > De todas maneras, en mi opinión, todos estamos opinando de un problema > que no sabemos bien de que trata. Creo que deberías explicarnos con > mas detalle cual es tu dominio y por que tu solución fue implementar > un ORM desde cero y no utilizar un librería existente. > > Mira de manera resumida te puedo decir que cuando empece a trabajar con Django o mejor dicho a aprenderlo estuve viendo como trabajar con su ORM y como ensamblaba los querys y la verdad es que no me gusto para nada y ya que contaba con tiempo para ese momento emprendí la gran tarea de hacerme mi ORM y bueno como todo se tienen sus pro y sus contras, pero el que mas me mueve de hacer algo como esto es el gran conocimiento adquirido en el proceso. > El día 21 de enero de 2013 16:35, Alvaro Manrique > escribió: > > Tengo que rendirme con las metaclases :( (por ahorita!!! jejeje) > > > > Siguiendo tu ejemplo voy a solucionar de esta manera... > > > > http://pastebin.com/17izeDuZ > > > > Modifiqué el ejemplo con los nombres mas reales para que se aprecie > mejor la > > aplicación y así quizá le sirva a otra persona como base para un > desarrollo > > mas amplio. > > > > Ahora a mi me queda la pequeña tarea de aplicar la solución al desarrollo > > real :-s jeje > > > > Muchas gracias por la ayuda, como siempre es invaluable. > > > > > > -------------------------------------------------------------- > > Alvaro Manrique > > Programador > > Venezuela > > Skype: alvaromanrique84 > > Twitter: @AJ_Manrique > > --------------------------------------------------------------- > > > > > > El 21 de enero de 2013 14:00, Alvaro Manrique > > > escribió: > > > >> ok voy a probar implementar lo que me indicas en la metaclase, vamos a > ver > >> que tal... > >> > >> > >> -------------------------------------------------------------- > >> Alvaro Manrique > >> Programador > >> Venezuela > >> Skype: alvaromanrique84 > >> Twitter: @AJ_Manrique > >> --------------------------------------------------------------- > >> > >> > >> El 21 de enero de 2013 13:05, Oswaldo escribió: > >> > >>> El 21/01/2013 17:05, Alvaro Manrique escribió: > >>> > >>>> Estoy probando esto... > >>>> > >>>> http://pastebin.com/asbyumjW > >>>> > >>>> Sin embargo tengo el mismo resultado, pero que me dicen... Voy por > buen > >>>> camino?? > >>>> > >>>> > >>> > >>> Como ya te han dicho para que cada instancia de la clase hija tenga sus > >>> instancias independientes de miembro tienes que crearlas en el > __init__ (No > >>> se ahora mismo si con metaclases se podría conseguir también). > >>> > >>> Y si lo que quieres en simplicidad a la hora de definir las clases > hijas > >>> te lo tendrás que montar para hacer una definición que utilice el init > de la > >>> base posteriormente. Por ejemplo: > >>> > >>> > >>> >>> class base(object): > >>> ... atributos = {} # diccionario {"nombreatributo": clase,} > >>> ... def __init__(self): > >>> ... for k in self.atributos: > >>> ... setattr(self, k, self.atributos[k]()) > >>> ... > >>> >>> class hija(base): > >>> ... atributos = { > >>> ... "Miembro1": Miembro, > >>> ... "Miembro2": Miembro, > >>> ... } > >>> ... > >>> >>> h1 = hija() > >>> > >>> Inicio de la clase Miembro > >>> Inicio de la clase Miembro > >>> >>> h2 = hija() > >>> > >>> Inicio de la clase Miembro > >>> Inicio de la clase Miembro > >>> >>> > >>> >>> print id(h1.Miembro1) > >>> 31243504 > >>> >>> print id(h2.Miembro1) > >>> 31243664 > >>> >>> > >>> >>> del h1 > >>> > >>> Fin de la clase Miembro > >>> Fin de la clase Miembro > >>> >>> del h2 > >>> > >>> Fin de la clase Miembro > >>> Fin de la clase Miembro > >>> >>> > >>> > >>> > >>> > >>> -- > >>> Oswaldo > >>> _______________________________________________ > >>> Python-es mailing list > >>> Python-es en python.org > >>> http://mail.python.org/mailman/listinfo/python-es > >>> FAQ: http://python-es-faq.wikidot.com/ > >> > >> > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > -- > Juan B Cabral > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From sanreikaj.foros en gmail.com Mon Jan 21 23:34:08 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Mon, 21 Jan 2013 18:04:08 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> Message-ID: -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 16:51, Chema Cortes escribió: > El día 21 de enero de 2013 16:00, Alvaro Manrique > escribió: > > Gracias Chema y Oswaldo > > > > Emmm tomando lo ultimo que dices Oswaldo ya estoy en el desastre jejeje, > mi > > problema es tal cual lo planteas. > > > > Planteo el problema de esta manera: > > > > Necesito que la clase Hija herede de la clase base para que tenga sus > > métodos y atributos, hasta aquí todo bien. > > > > Luego los atributos de la clase hija también deben ser objetos ya que > ellos > > deben manejar sus propios atributos y métodos, aquí es donde nace la > idea de > > que sean instancias de otra clase aparte y de hecho hasta aquí todo > funciona > > de maravilla el problema es cuando necesito crear otra instancia de la > misma > > clase hija. > > > > Si pudiese lograr que cuando se destruya la instancia de la clase hija > > también lo hagan sus atributos seria la solución, pero como dices Chema > > quizá es problema de concepto. > > Lo que me despista es la comparación con un ORM. Que los atributos se > comporten como objetos es lo normal, en python todo son objetos. El > problema parece ser que no quieres que sean atributos compartidos por > todas las instancias (atributos de clase). Entonces tendrás que > declararlos dentro de algún método de inicialización o de creación de > la instancia. > No es una comparación, es el desarrollo de un ORM, obviamente en su fase inicial y quizá mas de un maestro de los que están aquí pensaran que puedo hacerlo de una u otra manera (o que estoy errado del todo :s), pero creo que es parte del aprendizaje. Entrando en materia, efectivamente fue lo que hice, en la inicialización de la clase base creo la instancia de la clase base de los "Campos" > Si por lo que veo, cada instancia dices que quieres que tenga su > conexión, y no quieres que se comparta entre instancias, entonces > tienes dos opciones: > > 1) crea la conexión al inicializar la instancia (método __init__) > 2) crea la conexión fuera de la definición de la clase y se la añades > como atributo a la instancia > > Es correcto así lo estoy haciendo. > > Tal vez pueda serte útil echar un vistazo a la teoría de "Patrones de > Diseño", en concreto los patrones estructurales como Facade: > > http://es.wikipedia.org/wiki/Patrón_de_diseño > > http://www.etnassoft.com/biblioteca/design-patterns-in-python/ > > > Gracias por tus respuestas, voy a leer los artículos que me sugieres. > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lastvnm en gmail.com Tue Jan 22 03:26:20 2013 From: lastvnm en gmail.com (Hiko hitokiri) Date: Mon, 21 Jan 2013 20:26:20 -0600 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> Message-ID: pues que raro por que con lo que te respondían al principio class Hija(Base): def __init__(self): super(Hija,self).__init__() self.Miembro1 = Miembro() se supone se resolvía tu problema no entiendo cual sigue siendo el problema hiko_hitokiri no pidas que el mundo te trate de una manera cuando tu no le das el mismo trato a los demás ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From sanreikaj.foros en gmail.com Tue Jan 22 13:26:50 2013 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Tue, 22 Jan 2013 07:56:50 -0430 Subject: [Python-es] Clase de Clases In-Reply-To: References: <50FD2FC3.8050304@soft-com.es> Message-ID: Hola Hiko, ya por ahorita resolví, pero no exactamente así, es decir, inicializando las instancias en el _init__ de la clase Base. Dale un vistazo al ultimo código que publiqué -------------------------------------------------------------- *Alvaro Manrique* *Programador* *Venezuela* *Skype: alvaromanrique84* *Twitter: @AJ_Manrique * --------------------------------------------------------------- El 21 de enero de 2013 21:56, Hiko hitokiri escribió: > pues que raro por que con lo que te respondían al principio > > class Hija(Base): > > def __init__(self): > super(Hija,self).__init__() > self.Miembro1 = Miembro() > > se supone se resolvía tu problema no entiendo cual sigue siendo el problema > > hiko_hitokiri no pidas que el mundo te trate de una manera cuando tu no le > das el mismo trato a los demás > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kausdiv en gmail.com Tue Jan 22 17:20:46 2013 From: kausdiv en gmail.com (kausdiv) Date: Tue, 22 Jan 2013 17:20:46 +0100 Subject: [Python-es] RaspBerry PI + Python Message-ID: <50FEBC5E.1010509@gmail.com> Hola amigos. Hace unas horas he comprado una Raspberry pi B. (aún no ha llegado) :-( Para los que no saben qué es: Es un ordenador del tamaño de una tarjeta de crédito y que cuesta poco más de 30? Y rula con Linux (raspbian) Mi preguna: ¿ alguno ha programa do algo para la raspBerry en python ? Saludos. From geistein en gmail.com Tue Jan 22 17:38:05 2013 From: geistein en gmail.com (GEIS AUGUSTO GARCIA ROMERO) Date: Tue, 22 Jan 2013 11:38:05 -0500 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: <50FEBC5E.1010509@gmail.com> References: <50FEBC5E.1010509@gmail.com> Message-ID: tengo conocimiento de lo que es la raspberry y lo que se es que viene con android como paquete de software tambien quiero comprarme una y ver que puedo desarrollar en ella por lo me nos me gustaria una idea para mi tesis si alguien puede dar info creo que nos serviria de ayuda. no estoy trolleando tu hilo kausdiv si no que nos puede ser de ayuda a todos El 22 de enero de 2013 11:20, kausdiv escribió: > Hola amigos. > > Hace unas horas he comprado una Raspberry pi B. (aún no ha llegado) :-( > Para los que no saben qué es: Es un ordenador del tamaño de una tarjeta de > crédito y que cuesta poco más de 30? Y rula con Linux (raspbian) > > Mi preguna: ¿ alguno ha programa do algo para la raspBerry en python ? > > Saludos. > > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > -- "Es mejor luchar y haber perdido que quedarse con la duda de lo que pudo haber sido." Geis. Tecnologo en Sistemas y Electronica e Instrumentacion ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kausdiv en gmail.com Tue Jan 22 17:56:18 2013 From: kausdiv en gmail.com (kausdiv) Date: Tue, 22 Jan 2013 17:56:18 +0100 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: References: <50FEBC5E.1010509@gmail.com> Message-ID: <50FEC4B2.4030903@gmail.com> Se ha borrado un adjunto en formato HTML... URL: From diacritica en elenya.net Tue Jan 22 18:23:53 2013 From: diacritica en elenya.net (=?ISO-8859-1?Q?Pablo_Ruiz_M=FAzquiz?=) Date: Tue, 22 Jan 2013 18:23:53 +0100 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: <50FEC4B2.4030903@gmail.com> References: <50FEBC5E.1010509@gmail.com> <50FEC4B2.4030903@gmail.com> Message-ID: Hola, Yo desarrollé una auténtica tontería en python y la Raspberry PI en la pasada PIWEEK [1] de Kaleidos, el DartGoLive! [2] La realidad ahora mismo es que las limitaciones no las está teniendo Python. Python es capaz de usarse al 100%. Al fin y al cabo tienes un Linux plenamente funcional. El problema es el manejo de los pines GPIO (la gracia al final) que se puede hacer con Linux y que aunque son digitales, Linux no es capaz (al contrario que Arduino) de interpretar la información que llega en tiempo real. Imagino que con el tiempo irá resolviéndose pero me temo que ahora mismo con Python puedes hacer lo que quieras mientras no esperes mucho de los pines GPIO. El resto de periféricos y recursos funcionan exactamente igual. Pablo [1] http://piweek.es [2] http://piweek.es/?p=431 2013/1/22 kausdiv > No hay problema. > > Solo rectificar que viene con Linux (debian). Si miras en su web, solo > pudes descargar ese sistema operativo. Pero están tratando de poner android. > > Hay varios proyectos muy interesantes que se pueden crear, más los que te > imagines. > > Control de relés, motores, etc. Un campo muy amplio. > > Saludos. > > > El 22/01/2013 17:38, GEIS AUGUSTO GARCIA ROMERO escribió: > > tengo conocimiento de lo que es la raspberry y lo que se es que viene con > android como paquete de software tambien quiero comprarme una y ver que > puedo desarrollar en ella por lo me nos me gustaria una idea para mi tesis > si alguien puede dar info creo que nos serviria de ayuda. no estoy > trolleando tu hilo kausdiv si no que nos puede ser de ayuda a todos > > > El 22 de enero de 2013 11:20, kausdiv escribió: > >> Hola amigos. >> >> Hace unas horas he comprado una Raspberry pi B. (aún no ha llegado) :-( >> Para los que no saben qué es: Es un ordenador del tamaño de una tarjeta >> de crédito y que cuesta poco más de 30? Y rula con Linux (raspbian) >> >> Mi preguna: ¿ alguno ha programa do algo para la raspBerry en python ? >> >> Saludos. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > > -- > "Es mejor luchar y haber perdido que quedarse con la duda de lo que pudo > haber sido." Geis. Tecnologo en Sistemas y Electronica e Instrumentacion > > > _______________________________________________ > Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From francois.dion en gmail.com Tue Jan 22 18:26:03 2013 From: francois.dion en gmail.com (Francois Dion) Date: Tue, 22 Jan 2013 12:26:03 -0500 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: <50FEBC5E.1010509@gmail.com> References: <50FEBC5E.1010509@gmail.com> Message-ID: 2013/1/22 kausdiv : > Hola amigos. > > Hace unas horas he comprado una Raspberry pi B. (aún no ha llegado) :-( > Para los que no saben qué es: Es un ordenador del tamaño de una tarjeta de > crédito y que cuesta poco más de 30? Y rula con Linux (raspbian) Buenas, Tengo una desde junio del ano pasado (y compre mas después). Lo que uno puede hacer con esto es casi sin fin. He completado cientos de cosas con este ordenador, y hay algunos de mi proyectos en mi blog: http://raspberry-python.blogspot.com Hay un botón ES por los textos en español. Pero si hay un articulo de las otras secciones que le gustaría ver en español (hay en ingles, francés y portugues), déjamelo saber. O si hay un tema de interés, es muy probable que lo he hecho, si hay preguntas... Uno de los articulos es sobre las listas y foros Raspberry Pi / Python en espanol: http://raspberry-python.blogspot.com/2012/12/listas-y-foros-raspberrypi-python-en.html > > Mi preguna: ¿ alguno ha programa do algo para la raspBerry en python ? Todo lo que estoy haciendo es en Python. Maquinas de quiz, Etch-a-sketch controlado por el pi, servidor de música web, de cámara de seguridad, de gráficos matplotlib sin servidor X (estadísticas de servidores), de control de Laser, interface con arduino, con ADC, para wake-on-lan, etc, etc. hay proyectos también que estoy haciendo sin Python porque no se requiere programación. Por ejemplo, un PBX, servidor de fichero y imprimadora, maquina de videojuego retro. Y hay otro que aunque es en Python, no es mi propio código, como http://reprap.org/wiki/Printrun o calibre. Lo único con Python es en cuanto a la frecuencia máxima de acceso a los GPIO: 130KHz. En C, es posible hacer mas de 100MHz... Saludos, Francois -- www.pyptug.org - raspberry-python.blogspot.com - @f_dion From kikocorreoso en gmail.com Tue Jan 22 22:37:08 2013 From: kikocorreoso en gmail.com (Kiko) Date: Tue, 22 Jan 2013 22:37:08 +0100 Subject: [Python-es] =?iso-8859-1?q?Traducci=F3n_de_las_scipy-lecture-note?= =?iso-8859-1?q?s_al_espa=F1ol?= Message-ID: Hola a todos. Hemos iniciado la traducción de las scipy-lecture-notes ( https://github.com/scipy-lectures/scipy-lecture-notes) al español. Si alguien quiere participar puede hacerlo a través de: https://github.com/Pybonacci/scipy-lecture-notes-ES Saludos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jbc.develop en gmail.com Tue Jan 22 22:43:35 2013 From: jbc.develop en gmail.com (Juan BC) Date: Tue, 22 Jan 2013 18:43:35 -0300 Subject: [Python-es] =?iso-8859-1?q?Traducci=F3n_de_las_scipy-lecture-note?= =?iso-8859-1?q?s_al_espa=F1ol?= In-Reply-To: References: Message-ID: reenvie el mail a sci-pyar... tengo que decir esto: "me arden los ojos de ver tanto html en el index.rst" El día 22 de enero de 2013 18:37, Kiko escribió: > Hola a todos. > > Hemos iniciado la traducción de las scipy-lecture-notes > (https://github.com/scipy-lectures/scipy-lecture-notes) al español. Si > alguien quiere participar puede hacerlo a través de: > https://github.com/Pybonacci/scipy-lecture-notes-ES > > Saludos. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Juan B Cabral From kikocorreoso en gmail.com Tue Jan 22 22:48:35 2013 From: kikocorreoso en gmail.com (Kiko) Date: Tue, 22 Jan 2013 22:48:35 +0100 Subject: [Python-es] =?iso-8859-1?q?Traducci=F3n_de_las_scipy-lecture-note?= =?iso-8859-1?q?s_al_espa=F1ol?= In-Reply-To: References: Message-ID: El 22 de enero de 2013 22:43, Juan BC escribió: > de ver tanto html en el index.rst" :-P Supongo que será para que quede bonito: http://scipy-lectures.github.com/ Muchas gracias. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kausdiv en gmail.com Wed Jan 23 00:23:58 2013 From: kausdiv en gmail.com (kausdiv) Date: Wed, 23 Jan 2013 00:23:58 +0100 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: References: <50FEBC5E.1010509@gmail.com> Message-ID: <50FF1F8E.3080502@gmail.com> Se ha borrado un adjunto en formato HTML... URL: From olemis en gmail.com Wed Jan 23 02:49:49 2013 From: olemis en gmail.com (Olemis Lang) Date: Tue, 22 Jan 2013 20:49:49 -0500 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: References: <50FEBC5E.1010509@gmail.com> <50FEC4B2.4030903@gmail.com> Message-ID: On 1/22/13, Pablo Ruiz Múzquiz wrote: > Hola, > :) > Yo desarrollé una auténtica tontería en python y la Raspberry PI en la > pasada PIWEEK [1] de Kaleidos, el DartGoLive! [2] > > La realidad ahora mismo es que las limitaciones no las está teniendo > Python. Python es capaz de usarse al 100%. Al fin y al cabo tienes un Linux > plenamente funcional. El problema es el manejo de los pines GPIO (la gracia > al final) que se puede hacer con Linux y que aunque son digitales, Linux no > es capaz (al contrario que Arduino) de interpretar la información que llega > en tiempo real. sospecho q eso es debido a q el kernel d Linux es preemptive by default ... pero hay otros kernels q no lo son , inclyendo algunos hard real time . Añadanle a eso q ningun lenguaje d programación con garbage collector (Python, Java, .NET , ...) es apropiado para control automático d hardware ... mucho menos en tiempo real ... mucho menos si es hard real-time ... > Imagino que con el tiempo irá resolviéndose pero me temo > que ahora mismo con Python puedes hacer lo que quieras mientras no esperes > mucho de los pines GPIO. no creo ... tengo la impresión d q c necesitaría un kernel real-time (e.g. ¿ un Solaris ? ... q no sería Linux ...) + un lenguaje d programación sin garbage collector . IOW , nada q ver con Python . CMIIW anyway ... ;) -- Regards, Olemis. Blog ES: http://simelo-es.blogspot.com/ Blog EN: http://simelo-en.blogspot.com/ Featured article: From olemis en gmail.com Wed Jan 23 02:59:31 2013 From: olemis en gmail.com (Olemis Lang) Date: Tue, 22 Jan 2013 20:59:31 -0500 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: References: <50FEBC5E.1010509@gmail.com> Message-ID: On 1/22/13, Francois Dion wrote: > 2013/1/22 kausdiv : >> Hola amigos. >> >> Hace unas horas he comprado una Raspberry pi B. (aún no ha llegado) :-( >> Para los que no saben qué es: Es un ordenador del tamaño de una tarjeta >> de >> crédito y que cuesta poco más de 30? Y rula con Linux (raspbian) > > Buenas, > :) >> >> Mi preguna: ¿ alguno ha programa do algo para la raspBerry en python ? > > Todo lo que estoy haciendo es en Python. Maquinas de quiz, > Etch-a-sketch controlado por el pi, servidor de música web, de cámara > de seguridad, de gráficos matplotlib sin servidor X (estadísticas de > servidores), de control de Laser, interface con arduino, con ADC, para > wake-on-lan, etc, etc. > No lo había dicho antes , ese blog está tremendamente bueno ... lástima q no estoy orientado a temas d hardware hace un tiempo ya , y no tengo mucho tiempo para jugar y romper cacharritos ... :'( > hay proyectos también que estoy haciendo sin Python porque no se > requiere programación. Por ejemplo, un PBX, servidor de fichero y > imprimadora, maquina de videojuego retro. Y hay otro que aunque es en > Python, no es mi propio código, como http://reprap.org/wiki/Printrun o > calibre. > > Lo único con Python es en cuanto a la frecuencia máxima de acceso a > los GPIO: 130KHz. En C, es posible hacer mas de 100MHz... > sí eso es seguro . entre los cambios d contexto entre modo kernel y modo usuario , los cambios d contexto entre el Python y la implementación en C , el garbage collector , ... y unos cuantos bichos más ... pues Python siempre quedará por detrás . Eso es seguro . Python no es apropiado para este tipo d cosas más exigentes , ni siquiera en el mejor caso . :'( ¿ Sin embargo m pregunto si es posible hacer un híbrido ? Es decir , algo como un proceso dedicado al control del hardware (... real time o casi ...) hecho en C y otro d supervisión (algo como una configuración tipo SCADA) hecho en Python . ¿ Si bien no todo-en-uno quizás distribuido entre varios Raspberry Pi ? -- Regards, Olemis. Blog ES: http://simelo-es.blogspot.com/ Blog EN: http://simelo-en.blogspot.com/ Featured article: From faltet en gmail.com Wed Jan 23 09:52:10 2013 From: faltet en gmail.com (Francesc Alted) Date: Wed, 23 Jan 2013 09:52:10 +0100 Subject: [Python-es] Mini Symposiums para SciPy 2013 Message-ID: <50FFA4BA.9070606@gmail.com> Hola, Para el siguiente SciPy 2013 (Austin, Texas) estamos sondeando al personal sobre los temas que les gustaria que se trataran en profundidad dentro de lo que llamamos mini-simposiums. Por ejemplo, el año pasado se celebraron los siguientes: Astronomia/Astrofisica, Bio-informatica, Meteorologia, y Geofisica. Por favor, los interesados, pasaros por: http://www.surveygizmo.com/s3/1114631/SciPy-2013-Themes y votar a vuestros preferidos. Gracias! -- Francesc Alted Tutorial co-chair for SciPy 2013 From diego.uribe.gamez en gmail.com Wed Jan 23 20:22:05 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Wed, 23 Jan 2013 14:22:05 -0500 Subject: [Python-es] OFFTopic: error SQL Message-ID: Estoy haciendo un query que me dice cuantas veces hoy fue ingresado un producto por id, pero me sale un error cuando intento realizar la búsqueda sobre dos columnas, en cambio si lo hago sobre una queda bien. Este sale bien: -------------------------------------------------------------------- query = "SELECT COUNT(*) FROM tienda_registro WHERE fecha_servidor = '2013-01-22'" -------------------------------------------------------------------- Este que consulta el conteo usando dos columnas sale mal -------------------------------------------------------------------- query = "SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 , fecha_servidor = '2013-01-22'" Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' fecha_servidor = '2013-01-22'' at line 1") -------------------------------------------------------------------- Alguien me podría decir que esta mal? Gracias. -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From brarcos en gmail.com Wed Jan 23 20:25:10 2013 From: brarcos en gmail.com (=?UTF-8?Q?Benito_Rodr=C3=ADguez_Arcos?=) Date: Wed, 23 Jan 2013 20:25:10 +0100 Subject: [Python-es] OFFTopic: error SQL In-Reply-To: References: Message-ID: 2013/1/23 Diego Uribe Gamez > query = "SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 , > fecha_servidor = '2013-01-22'" > WHERE id_producto = 65656 AND fecha_servidor = '2013-01-22' ------- *Benito Rodriguez Arcos - http://about.me/b3ni* ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From maigfrga en gmail.com Wed Jan 23 20:25:44 2013 From: maigfrga en gmail.com (Manuel Ignacio Franco Galeano) Date: Wed, 23 Jan 2013 20:25:44 +0100 Subject: [Python-es] OFFTopic: error SQL In-Reply-To: References: Message-ID: 2013/1/23 Diego Uribe Gamez > SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 , > fecha_servidor = '2013-01-22 Si la consulta es con sql se deben usar los operadores booleanos SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 AND fecha_servidor = '2013-01-22 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From maengora en gmail.com Wed Jan 23 20:38:33 2013 From: maengora en gmail.com (=?ISO-8859-1?Q?Manuel_Enrique_Gonz=E1lez_Ram=EDrez?=) Date: Wed, 23 Jan 2013 14:38:33 -0500 Subject: [Python-es] OFFTopic: error SQL In-Reply-To: References: Message-ID: Hola, Yo agregaría un AND a la condición que le estás dando: query = "SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 *and * fecha_servidor = '2013-01-22'" El 23 de enero de 2013 14:25, Manuel Ignacio Franco Galeano < maigfrga en gmail.com> escribió: > > 2013/1/23 Diego Uribe Gamez > >> SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 , >> fecha_servidor = '2013-01-22 > > > > Si la consulta es con sql se deben usar los operadores booleanos > > SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 AND > fecha_servidor = '2013-01-22 > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Manuel Enrique González Ramírez http://maengora.blogspot.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lesthack en gmail.com Wed Jan 23 21:03:58 2013 From: lesthack en gmail.com (lesthack) Date: Wed, 23 Jan 2013 14:03:58 -0600 Subject: [Python-es] =?iso-8859-1?q?Certificaci=F3n_en_Python=2E?= Message-ID: Hola que tal a todos, Solo quería preguntar si alguien cuenta con alguna certificación en python (por que se que existen algunas por ahí), y en su experiencia, como les ha funcionado. Existen buenas certificaciones en Python ? Cuales recomiendan los que ya cuentan con alguna ? Desde hace tiempo estoy interesado, y la que mas llamo mi atención fueron las certificaciones de O'Reilly School of Technology. Que dicen ustedes ? -- ________________________________________________________ ISC. Jorge Luis Hernández C. Desarrollador de Software y Tecnologías Libres Colaborador GNU/Linux Debian México http://lesthack.com.mx http://blog.debian.mx/ @lesthack ________________________________________________________ From go.vergara.a en gmail.com Wed Jan 23 22:19:22 2013 From: go.vergara.a en gmail.com (Gonzalo Alejandro Vergara Almonacid) Date: Wed, 23 Jan 2013 21:19:22 +0000 Subject: [Python-es] OFFTopic: error SQL Message-ID: <-2137191029842484454@unknownmsgid> si la fecha se guarda como tipo date, deberías hacer algo como esto "SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 AND fecha_servidor = DATE('2013-01-22?)? Gonzalo Vergara Almonacid Web Developer and Front End designer Ingeniería Civil Informática Universidad del Bío-Bío *De:* Diego Uribe Gamez *Enviado el:* 23 de enero de 2013 16:23 *Para:* La lista de python en castellano *Asunto:* [Python-es] OFFTopic: error SQL Estoy haciendo un query que me dice cuantas veces hoy fue ingresado un producto por id, pero me sale un error cuando intento realizar la búsqueda sobre dos columnas, en cambio si lo hago sobre una queda bien. Este sale bien: -------------------------------------------------------------------- query = "SELECT COUNT(*) FROM tienda_registro WHERE fecha_servidor = '2013-01-22'" -------------------------------------------------------------------- Este que consulta el conteo usando dos columnas sale mal -------------------------------------------------------------------- query = "SELECT COUNT(*) FROM tienda_registro WHERE id_producto = 65656 , fecha_servidor = '2013-01-22'" Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' fecha_servidor = '2013-01-22'' at line 1") -------------------------------------------------------------------- Alguien me podría decir que esta mal? Gracias. -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ _______________________________________________ Python-es mailing list Python-es en python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From manuelcortez00 en gmail.com Wed Jan 23 18:34:11 2013 From: manuelcortez00 en gmail.com (manuel) Date: Wed, 23 Jan 2013 17:34:11 +0000 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython Message-ID: <51001F13.3030609@gmail.com> Hola a todos, Para un proyecto de fin de cursos, me planteé crear una pequeña y simple calculadora usando Python como lenguaje y WXPython como Widgets gráficos, entre otras cosas, porque es multiplataforma, y en Microsoft Windows, que es donde la necesito ejecutar, ofrece accesibilidad, cosa necesaria para mí y que no ofrece ninguna calculadora gratuita, al menos que yo sepa. La cosa, es que me gustaría que la calculadora tenga una sintaxis intuitiva, y para eso pido su consejo. Cuando la calculadora solo se encargaba de sumar y restar, lo que hacía era pasarle la cadena tomada del campo de texto a eval(), intentando encerrar lo más posible la función, por aquello que eval podría ejecutar más código. Parecía todo funcionar de una forma aceptable. El problema llegó cuando, por exigencias de la escuela, teníamos que trabajar seguido con raíces cuadradas. Bien, implementé la función, pero eso supondría tener que hacer algo como math.sqrt() o sqrt(); no sé la demás gente, pero no suena algo bastante simple de realizar, al menos para alguien que no tiene idea de Python (este proyecto lo comparto con otro compañero ciego que va en la universidad). La respuesta a esto, fue algo más o menos claro. La idea ahora, es que se carga una cadena a una función, y la cadena se encarga de reemplazar símbolos por las funciones correspondientes, que toma de un par de diccionarios. En pocas palabras, se hace la conversión de algo como "R25" a sqrt(25); luego, se pasa a eval, que ya tiene importado todo math. Si la cadena llegase a dar una excepción, se maneja mostrando un mensaje en el programa, sin más. Cada nueva operación (que se calcula presionando enter o el botón = ) carga la cadena, y la función hace su trabajo. Pero hay dos motivos que me llevan a hacer esta petición a la lista; una, es que no estoy seguro, pero quiero preguntar si hay una forma más sencilla de hacer que una expresión se vea más común, como el ejemplo anterior; imagino que usar eval tiene sus riesgos por todas partes, y quería preguntar si alguno conoce un parser que pueda ayudarme de modo que pueda cambiar la sintaxis, sería de gran ayuda. Otra de las cosas que quisiera preguntar, es si se podría conseguir un resultado de un porcentaje, pero escrito de la siguiente forma: 25+50%. En GCalctool, esto se hace, pero no sé leer el código; no entiendo de muy buena forma cómo lo hacen; se asume que el 50% debe ser del número 25, pero cuando haces 25% se obtiene un 0.25, donde se asume no sé qué, se multiplica 25*1/100, y se obtiene el resultado. Alguien tiene una idea de cómo podría hacer esto en Python? Alguien me sugirió hacer una especie de compilador o intérprete, porque se podía definir la sintaxis, pero no veo una luz al respecto. Muchas gracias por su atención; saludos. From reingart en gmail.com Thu Jan 24 01:16:16 2013 From: reingart en gmail.com (Mariano Reingart) Date: Wed, 23 Jan 2013 21:16:16 -0300 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython In-Reply-To: <51001F13.3030609@gmail.com> References: <51001F13.3030609@gmail.com> Message-ID: Para analizar el código y evitar en alguna forma el eval lo más fácil de usar es tokenizer: http://docs.python.org/2/library/tokenize.html?highlight=tokenizer import tokenize from StringIO import StringIO s = "1 + sqrt(10)" g = tokenize.generate_tokens(StringIO(s).readline) Eso te generaría una "lista" con el analisis de los tokens (elementos sintácticos), por ej para "1 + sqrt(10)": (2, '1', (1, 0), (1, 1), '1 + sqrt(10)'), (51, '+', (1, 2), (1, 3), '1 + sqrt(10)'), (1, 'sqrt', (1, 4), (1, 8), '1 + sqrt(10)'), (51, '(', (1, 8), (1, 9), '1 + sqrt(10)'), (2, '10', (1, 9), (1, 11), '1 + sqrt(10)'), (51, ')', (1, 11), (1, 12), '1 + sqrt(10)'), (0, '', (2, 0), (2, 0), '') El primer valor es el tipo de token: token.OP = 51 token.NAME = 1 token.NUMBER = 2 El segundo valor es el string, el tercero y cuarto son la posición y el quinto es la linea de código fuente. Con el tipo y el string podrias armarte un mini-interprete para evitar el uso de eval, y sin preocuparte mucho por la sintaxis. Para temas avanzados, podrías usar los módulos parser y ast (pero es algo bastante complejo y ya entra en juego la maquina virtual de python): http://docs.python.org/2/library/parser.html http://docs.python.org/2/library/ast.html Al margen, ¿que materia estas cursando? ¿vas a publicar el código o el trabajo? Sds Mariano Reingart http://www.sistemasagiles.com.ar http://reingart.blogspot.com 2013/1/23 manuel : > Hola a todos, > > Para un proyecto de fin de cursos, me planteé crear una pequeña y simple > calculadora usando Python como lenguaje y WXPython como Widgets gráficos, > entre otras cosas, porque es multiplataforma, y en Microsoft Windows, que es > donde la necesito ejecutar, ofrece accesibilidad, cosa necesaria para mí y > que no ofrece ninguna calculadora gratuita, al menos que yo sepa. > > La cosa, es que me gustaría que la calculadora tenga una sintaxis intuitiva, > y para eso pido su consejo. > > Cuando la calculadora solo se encargaba de sumar y restar, lo que hacía era > pasarle la cadena tomada del campo de texto a eval(), intentando encerrar lo > más posible la función, por aquello que eval podría ejecutar más código. > Parecía todo funcionar de una forma aceptable. > > El problema llegó cuando, por exigencias de la escuela, teníamos que > trabajar seguido con raíces cuadradas. Bien, implementé la función, pero eso > supondría tener que hacer algo como math.sqrt() o sqrt(); no sé la demás > gente, pero no suena algo bastante simple de realizar, al menos para alguien > que no tiene idea de Python (este proyecto lo comparto con otro compañero > ciego que va en la universidad). > > La respuesta a esto, fue algo más o menos claro. La idea ahora, es que se > carga una cadena a una función, y la cadena se encarga de reemplazar > símbolos por las funciones correspondientes, que toma de un par de > diccionarios. En pocas palabras, se hace la conversión de algo como "R25" a > sqrt(25); luego, se pasa a eval, que ya tiene importado todo math. Si la > cadena llegase a dar una excepción, se maneja mostrando un mensaje en el > programa, sin más. Cada nueva operación (que se calcula presionando enter o > el botón = ) carga la cadena, y la función hace su trabajo. > > Pero hay dos motivos que me llevan a hacer esta petición a la lista; una, es > que no estoy seguro, pero quiero preguntar si hay una forma más sencilla de > hacer que una expresión se vea más común, como el ejemplo anterior; imagino > que usar eval tiene sus riesgos por todas partes, y quería preguntar si > alguno conoce un parser que pueda ayudarme de modo que pueda cambiar la > sintaxis, sería de gran ayuda. > > Otra de las cosas que quisiera preguntar, es si se podría conseguir un > resultado de un porcentaje, pero escrito de la siguiente forma: 25+50%. > > En GCalctool, esto se hace, pero no sé leer el código; no entiendo de muy > buena forma cómo lo hacen; se asume que el 50% debe ser del número 25, pero > cuando haces 25% se obtiene un 0.25, donde se asume no sé qué, se multiplica > 25*1/100, y se obtiene el resultado. > > Alguien tiene una idea de cómo podría hacer esto en Python? Alguien me > sugirió hacer una especie de compilador o intérprete, porque se podía > definir la sintaxis, pero no veo una luz al respecto. > > Muchas gracias por su atención; saludos. > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From manuelcortez00 en gmail.com Wed Jan 23 19:26:40 2013 From: manuelcortez00 en gmail.com (manuel) Date: Wed, 23 Jan 2013 18:26:40 +0000 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython In-Reply-To: References: <51001F13.3030609@gmail.com> Message-ID: <51002B60.5090108@gmail.com> Muchas gracias por los enlaces, le daré un vistazo a ver qué de ello podría ver si implemento. Y al respecto del proyecto, estoy por terminar un grado donde se supone debemos ver programación, pero opté por Python, aunque me vale poco el trabajo, porque lo intento hacer por más necesidad que gusto. En la escuela llevamos cálculo estadístico, financiero, vectorial, etc, y para eso, mis compañeros usan una TI84, si no me equivoco, pues en esos cálculos y al graficar funciones es la que pide. Soy ciego, y la TI no ofrece forma alguna (al menos no nos garantizan nada) de que yo pueda recibir soporte de voz al usarla. Las soluciones son usar excel (no quisiera depender mucho de estas herramientas, que hacen el cálculo pero consumen recursos como ellas solas) o implementar las funciones que normalmente usas en la escuela (raíz cuadrada, logaritmo, seno, coseno, tangente, la prueba t, trabajo vectorial, porcentajes, interés compuesto, etc), o al menos la mayor parte de lo que se use, siempre teniendo en cuenta que esto va empezando. Y al respecto al código, la idea es que una vez alcance un grado suficiente de madurez, osea, cuando la sintaxis permita que solo tengas que añadir la función nueva, y no hacer un montón de modificaciones a su código, lo publicaré en google code, porque la razón por la que hago esto es porque las calculadoras que ofrecen algún tipo de accesibilidad a un lector de pantalla, cuestan como mínimo unos 187 dólares americanos; no hay algo Open Source por ahí, y si van bien las cosas, sería bueno liberar el código. Gracias por la respuesta, buscaré en los enlaces; saludos. El 24/01/13 00:16, Mariano Reingart escribió: > Para analizar el código y evitar en alguna forma el eval lo más fácil > de usar es tokenizer: > > http://docs.python.org/2/library/tokenize.html?highlight=tokenizer > > import tokenize > from StringIO import StringIO > s = "1 + sqrt(10)" > g = tokenize.generate_tokens(StringIO(s).readline) > > Eso te generaría una "lista" con el analisis de los tokens (elementos > sintácticos), por ej para "1 + sqrt(10)": > > (2, '1', (1, 0), (1, 1), '1 + sqrt(10)'), > (51, '+', (1, 2), (1, 3), '1 + sqrt(10)'), > (1, 'sqrt', (1, 4), (1, 8), '1 + sqrt(10)'), > (51, '(', (1, 8), (1, 9), '1 + sqrt(10)'), > (2, '10', (1, 9), (1, 11), '1 + sqrt(10)'), > (51, ')', (1, 11), (1, 12), '1 + sqrt(10)'), > (0, '', (2, 0), (2, 0), '') > > El primer valor es el tipo de token: > token.OP = 51 > token.NAME = 1 > token.NUMBER = 2 > > El segundo valor es el string, el tercero y cuarto son la posición y > el quinto es la linea de código fuente. > Con el tipo y el string podrias armarte un mini-interprete para evitar > el uso de eval, y sin preocuparte mucho por la sintaxis. > > Para temas avanzados, podrías usar los módulos parser y ast (pero es > algo bastante complejo y ya entra en juego la maquina virtual de > python): > > http://docs.python.org/2/library/parser.html > > http://docs.python.org/2/library/ast.html > > Al margen, ¿que materia estas cursando? ¿vas a publicar el código o el trabajo? > > Sds > > Mariano Reingart > http://www.sistemasagiles.com.ar > http://reingart.blogspot.com > > > 2013/1/23 manuel : >> Hola a todos, >> >> Para un proyecto de fin de cursos, me planteé crear una pequeña y simple >> calculadora usando Python como lenguaje y WXPython como Widgets gráficos, >> entre otras cosas, porque es multiplataforma, y en Microsoft Windows, que es >> donde la necesito ejecutar, ofrece accesibilidad, cosa necesaria para mí y >> que no ofrece ninguna calculadora gratuita, al menos que yo sepa. >> >> La cosa, es que me gustaría que la calculadora tenga una sintaxis intuitiva, >> y para eso pido su consejo. >> >> Cuando la calculadora solo se encargaba de sumar y restar, lo que hacía era >> pasarle la cadena tomada del campo de texto a eval(), intentando encerrar lo >> más posible la función, por aquello que eval podría ejecutar más código. >> Parecía todo funcionar de una forma aceptable. >> >> El problema llegó cuando, por exigencias de la escuela, teníamos que >> trabajar seguido con raíces cuadradas. Bien, implementé la función, pero eso >> supondría tener que hacer algo como math.sqrt() o sqrt(); no sé la demás >> gente, pero no suena algo bastante simple de realizar, al menos para alguien >> que no tiene idea de Python (este proyecto lo comparto con otro compañero >> ciego que va en la universidad). >> >> La respuesta a esto, fue algo más o menos claro. La idea ahora, es que se >> carga una cadena a una función, y la cadena se encarga de reemplazar >> símbolos por las funciones correspondientes, que toma de un par de >> diccionarios. En pocas palabras, se hace la conversión de algo como "R25" a >> sqrt(25); luego, se pasa a eval, que ya tiene importado todo math. Si la >> cadena llegase a dar una excepción, se maneja mostrando un mensaje en el >> programa, sin más. Cada nueva operación (que se calcula presionando enter o >> el botón = ) carga la cadena, y la función hace su trabajo. >> >> Pero hay dos motivos que me llevan a hacer esta petición a la lista; una, es >> que no estoy seguro, pero quiero preguntar si hay una forma más sencilla de >> hacer que una expresión se vea más común, como el ejemplo anterior; imagino >> que usar eval tiene sus riesgos por todas partes, y quería preguntar si >> alguno conoce un parser que pueda ayudarme de modo que pueda cambiar la >> sintaxis, sería de gran ayuda. >> >> Otra de las cosas que quisiera preguntar, es si se podría conseguir un >> resultado de un porcentaje, pero escrito de la siguiente forma: 25+50%. >> >> En GCalctool, esto se hace, pero no sé leer el código; no entiendo de muy >> buena forma cómo lo hacen; se asume que el 50% debe ser del número 25, pero >> cuando haces 25% se obtiene un 0.25, donde se asume no sé qué, se multiplica >> 25*1/100, y se obtiene el resultado. >> >> Alguien tiene una idea de cómo podría hacer esto en Python? Alguien me >> sugirió hacer una especie de compilador o intérprete, porque se podía >> definir la sintaxis, pero no veo una luz al respecto. >> >> Muchas gracias por su atención; saludos. >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From francois.dion en gmail.com Thu Jan 24 03:26:45 2013 From: francois.dion en gmail.com (Francois Dion) Date: Wed, 23 Jan 2013 21:26:45 -0500 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: References: <50FEBC5E.1010509@gmail.com> Message-ID: 2013/1/22 Olemis Lang : > On 1/22/13, Francois Dion wrote: >> 2013/1/22 kausdiv : >>> Mi preguna: ¿ alguno ha programa do algo para la raspBerry en python ? >> >> Todo lo que estoy haciendo es en Python. Maquinas de quiz, >> Etch-a-sketch controlado por el pi, servidor de música web, de cámara >> de seguridad, de gráficos matplotlib sin servidor X (estadísticas de >> servidores), de control de Laser, interface con arduino, con ADC, para >> wake-on-lan, etc, etc. >> > > No lo había dicho antes , ese blog está tremendamente bueno ... muchas gracias >> Lo único con Python es en cuanto a la frecuencia máxima de acceso a >> los GPIO: 130KHz. En C, es posible hacer mas de 100MHz... > > sí eso es seguro . entre los cambios d contexto entre modo kernel y > modo usuario , los cambios d contexto entre el Python y la > implementación en C , el garbage collector , ... y unos cuantos bichos > más ... pues Python siempre quedará por detrás . Eso es seguro . En realidad, es suficiente rápido para controlar motores paso a paso, servos y cosas así. No he encontrado una situación todavía en que este limite me molesta. > ¿ Sin embargo m pregunto si es posible hacer un híbrido ? Si, es posible. Hay software PWM que se hace de esta manera hoy Francois -- www.pyptug.org - raspberry-python.blogspot.com - @f_dion From olemis en gmail.com Thu Jan 24 06:11:04 2013 From: olemis en gmail.com (Olemis Lang) Date: Thu, 24 Jan 2013 00:11:04 -0500 Subject: [Python-es] RaspBerry PI + Python In-Reply-To: References: <50FEBC5E.1010509@gmail.com> Message-ID: On 1/23/13, Francois Dion wrote: > 2013/1/22 Olemis Lang : >> On 1/22/13, Francois Dion wrote: >>> 2013/1/22 kausdiv : [...] >>> Lo único con Python es en cuanto a la frecuencia máxima de acceso a >>> los GPIO: 130KHz. En C, es posible hacer mas de 100MHz... >> >> sí eso es seguro . entre los cambios d contexto entre modo kernel y >> modo usuario , los cambios d contexto entre el Python y la >> implementación en C , el garbage collector , ... y unos cuantos bichos >> más ... pues Python siempre quedará por detrás . Eso es seguro . > > En realidad, es suficiente rápido para controlar motores paso a paso, > servos y cosas así. No he encontrado una situación todavía en que este > limite me molesta. > sí , bueno ... en esos niveles d control no debe haber *muchos* problemas . M refería a casos más exigentes desde el punto d vista d control . Quizás es q estoy prejuiciado por mi experiencia anterior . ;) >> ¿ Sin embargo m pregunto si es posible hacer un híbrido ? > > Si, es posible. Hay software PWM que se hace de esta manera hoy > con Raspbery Pi + Python ? 8-O -- Regards, Olemis. Blog ES: http://simelo-es.blogspot.com/ Blog EN: http://simelo-en.blogspot.com/ Featured article: From pych3m4 en gmail.com Thu Jan 24 18:16:56 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 24 Jan 2013 18:16:56 +0100 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython In-Reply-To: <51001F13.3030609@gmail.com> References: <51001F13.3030609@gmail.com> Message-ID: El día 23 de enero de 2013 18:34, manuel escribió: > Otra de las cosas que quisiera preguntar, es si se podría conseguir un > resultado de un porcentaje, pero escrito de la siguiente forma: 25+50%. > > En GCalctool, esto se hace, pero no sé leer el código; no entiendo de muy > buena forma cómo lo hacen; se asume que el 50% debe ser del número 25, pero > cuando haces 25% se obtiene un 0.25, donde se asume no sé qué, se multiplica > 25*1/100, y se obtiene el resultado. Hay un modo sencillo de hacer la calculadora que es dar los resultados parciales a medida que se van aplicando los operadores. Por ejemplo, cuando sumas números, cada vez que se pulsa la tecla + se obtiene cada resultado parcial de la suma. Tal como lo planteas, tu idea es algo más complicada. Lo simple sería escribir la operación como si fuera una expresión python y dejar que la evalúe el intérprete. Si lo quieres hacer de otro modo, tendrás que empezar por distinguir qué operadores son totalizadores (cálculos parciales y totales) y en qué posición actúan (prefix/infix/sufix). Tal como creo que intuyes, no es nada fácil y necesitarás conocer algo de "teoría de máquinas de estados finitos" para entenderlo, algo que se sale bastante de un proyecto de final de curso. No tengo una recomendación clara que te pueda ayudar. Si sientes curiosidad, tal vez podría buscarte algo de código para hacer una calculadora. Sobre lo que preguntas del tanto por ciento, se suelen representan los números reales del 0 al 1 como factores multiplicativos, para lo que se muestran multiplicados por 100 o por 1000, añadiendo el sufijo % ó ? (unicode U+2030) respectivamente. Así, por ejemplo, el 50% representa al factor 0.5, más conocido por 1/2 En el caso de 25+50% se trataría de una operación de descuentos/incrementos, donde a 25 le sumas un 50% (de 25). El porqué el operador % funciona ahora así en lugar de limitarse a convertir 50% en 0.5 se debe a que la calculadora ha cambiado de estado al iniciarse la suma. En una suma, el 50% se toma como operación de incremento en lugar de factor multiplicativo. Es un ejemplo de funcionamiento de máquina de estados finitos. Por otra parte, no sé si conoces la Fundación ONCE española. Se dedica a adaptar dispositivos y aplicaciones a usuarios con deficiencia visual o motora (tiflotecnología) a través de su centro CIDAT (http://cidat.once.es). Mira en su FTP. Así mismo, existe una calculadora llamada ATCalc que se adapta a tus necesidades. Es programable (en pascal), lo que te puede dar ideas para tu calculadora: http://atcalc.sourceforge.net/indexESP.htm -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From kurokysan en gmail.com Thu Jan 24 18:19:09 2013 From: kurokysan en gmail.com (Kennedy Sanchez) Date: Thu, 24 Jan 2013 13:19:09 -0400 Subject: [Python-es] Conocer IP de un subdominio In-Reply-To: <50F7E640.7070501@gmail.com> References: <50F7E640.7070501@gmail.com> Message-ID: La lentitud la presenta la resolucion que debe hacer de nombre a ip. Siempre tendra su delay, trata de usar parametros del comando ping para eficientizar la respuesta. On Jan 17, 2013 8:01 AM, "kausdiv" wrote: > > Hola. > > Administro 2 servidores, en ambos hay alojados x dominios, con su correos, etc. > Uno de ellos va a ser sustituido por otro y tengo que hacer el cambio de DNS. > > Lo que me gustaría hacer es un pequeño programa que pasandole un lista de dominios y subdominio me diga a qué ip apunta. > Ejemplo: smtp.mi-dominio.com ó www.mi-dominio.com > > ahora lo hago uno a uno usando ping pero es lento y tedioso. > > ¿ se podría hacer en python ? > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From manuelcortez00 en gmail.com Thu Jan 24 16:32:39 2013 From: manuelcortez00 en gmail.com (manuel) Date: Thu, 24 Jan 2013 15:32:39 +0000 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython In-Reply-To: References: <51001F13.3030609@gmail.com> Message-ID: <51015417.2080806@gmail.com> Hola Chema, muchas gracias por tu respuesta. Al respecto de la ONCE, conozco bien lo que desarrollan, y lo que funciona bien, es muy caro y al menos no llega a México si no es por una de sus filiales, que encima aumentan más lo que cuesta. Tienen un editor matemático, llamado Lambda, si no me equivoco, que te corre por 30 días y todo; es 100% cerrado, y lo peor de todo es que al igual que pasa con muchos lectores de pantalla, magnificadores, síntesis de voz, reconocimiento de habla, etc, es que como son sectores de mercado muy específico, la demanda es menor y el precio más alto. Claro, no hay nada en contra de esto, pero no puedes modificar nada de lo que ellos te den, y si por x o y razón vemos algo que no se contempla, para lo cual se usan estas TI, tendré menos posibilidades de ponerme a la par rápidamente. Pero es muy cierto que no tengo mucha idea de lo que mencionas para hacer la calculadora con cambios de estado, con lo que creo que continuaré pasando código por eval en forma de cadena, y restringiendo a este para que ejecute la menor cantidad de código no matemático posible. Lo que hago ahora es algo sencillo, pero no sé si esté del todo bien. El programa toma una cadena, por ejemplo "R25" que es la representación de la raíz de 25 (tuve problemas con el símbolo de raíz, creo que era debido a la codificación); luego, en una clase se define un diccionario que tiene como clave cada uno de los signos que llaman a una función que se pueden ver en la calculadora, en este caso la "R", y como valor la función Python a la que pertenecen, en este ejemplo, como cuando ejecuto eval() ya tengo importado todo math, sería "sqrt". Ahora bien, solo es cuestión de reemplazar y eso lo hace una función, que busca en una cadena si existe la clave del diccionario, y si existe, lo reemplaza con su valor, y le suma un paréntesis izquierdo, de este modo, la parte de "R25" quedaría como "sqrt(25". Siempre se le suma un paréntesis derecho a la cadena en la última función que se ejecuta antes que se mande a eval, ya que si se deja así no funcionará. Ahora, al terminar esta expresión, Python recibe "sqrt(25)", y puede reconocerlo. Un problema que se me planteó después, es ¿qué sucedería si alguien hace algo como "R25+R9"? El código que recibiría Python sería algo como "sqrt(25+sqrt(9)"; por lo que además de lo anterior, hice un procedimiento para que viera si hay signos, y si los hay, colocara un paréntesis izquierdo y un derecho antes y después del signo, para que la suma anterior se pudiera ver como "sqrt(25)+(sqrt(9))". Aún tengo mis dudas de que esto sea algo útil, ya que los paréntesis aunque dan el resultado esperado, creo que no es la mejor idea, pero más o menos esto es lo que actualmente se hace, y mi razón de escribir a la lista. Si esto está bien, solo falta usar scipy para darme funciones de cálculo estadístico, pero lo más seguro es que haya formas más inteligentes de hacer esto. Justamente para esto preguntaba acerca de la sintaxis, porque supongo que una vez terminado, sería más sencillo hacer que el parser se adapte a la entrada de texto, que intentar moldear la cadena para que Python la reconozca, pero no tengo mucha luz al respecto. Gracias, y saludos. El 24/01/13 17:16, Chema Cortes escribió: > El día 23 de enero de 2013 18:34, manuel escribió: > >> Otra de las cosas que quisiera preguntar, es si se podría conseguir un >> resultado de un porcentaje, pero escrito de la siguiente forma: 25+50%. >> >> En GCalctool, esto se hace, pero no sé leer el código; no entiendo de muy >> buena forma cómo lo hacen; se asume que el 50% debe ser del número 25, pero >> cuando haces 25% se obtiene un 0.25, donde se asume no sé qué, se multiplica >> 25*1/100, y se obtiene el resultado. > Hay un modo sencillo de hacer la calculadora que es dar los resultados > parciales a medida que se van aplicando los operadores. Por ejemplo, > cuando sumas números, cada vez que se pulsa la tecla + se obtiene cada > resultado parcial de la suma. > > Tal como lo planteas, tu idea es algo más complicada. Lo simple sería > escribir la operación como si fuera una expresión python y dejar que > la evalúe el intérprete. Si lo quieres hacer de otro modo, tendrás que > empezar por distinguir qué operadores son totalizadores (cálculos > parciales y totales) y en qué posición actúan (prefix/infix/sufix). > Tal como creo que intuyes, no es nada fácil y necesitarás conocer algo > de "teoría de máquinas de estados finitos" para entenderlo, algo que > se sale bastante de un proyecto de final de curso. > > No tengo una recomendación clara que te pueda ayudar. Si sientes > curiosidad, tal vez podría buscarte algo de código para hacer una > calculadora. > > > Sobre lo que preguntas del tanto por ciento, se suelen representan los > números reales del 0 al 1 como factores multiplicativos, para lo que > se muestran multiplicados por 100 o por 1000, añadiendo el sufijo % ó > ? (unicode U+2030) respectivamente. Así, por ejemplo, el 50% > representa al factor 0.5, más conocido por 1/2 > > En el caso de 25+50% se trataría de una operación de > descuentos/incrementos, donde a 25 le sumas un 50% (de 25). El porqué > el operador % funciona ahora así en lugar de limitarse a convertir 50% > en 0.5 se debe a que la calculadora ha cambiado de estado al iniciarse > la suma. En una suma, el 50% se toma como operación de incremento en > lugar de factor multiplicativo. Es un ejemplo de funcionamiento de > máquina de estados finitos. > > > Por otra parte, no sé si conoces la Fundación ONCE española. Se dedica > a adaptar dispositivos y aplicaciones a usuarios con deficiencia > visual o motora (tiflotecnología) a través de su centro CIDAT > (http://cidat.once.es). Mira en su FTP. > > Así mismo, existe una calculadora llamada ATCalc que se adapta a tus > necesidades. Es programable (en pascal), lo que te puede dar ideas > para tu calculadora: > > http://atcalc.sourceforge.net/indexESP.htm > > > > From jjgomera en gmail.com Fri Jan 25 00:40:14 2013 From: jjgomera en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_G=F3mez_Romera?=) Date: Fri, 25 Jan 2013 00:40:14 +0100 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython In-Reply-To: <51015417.2080806@gmail.com> References: <51001F13.3030609@gmail.com> <51015417.2080806@gmail.com> Message-ID: Quiza si el problema lo planteas de otra manera, en vez de que python tenga que intepretar la expresión, creando un nuevo lenguaje, a ver si me explico, que a python le llegue la r y sea el que sepa que lo que se quiere es una raiz cuadrada. Algo parecido a lo que se planteo en este concurso de programación: https://contest.tuenti.net/Questions?id=10 Yo lo solucione así: https://github.com/jjgomera/tuenti-challenge-2/blob/master/10_Coding_m00re_and_m00re.py Como ves los nombres son ridiculos, pero por lo demas si entiendes lo que hace quiza sea así como quieres que python haga los cálculos, sin tener que acudir a eval. Además podrías permitir al usuario que configurara a su gusto las operaciones, si r para raiz cuadrada no le gusta puedes hacer dialogos para configurar los "accesos" para cada operación El 24 de enero de 2013 16:32, manuel escribió: > Hola Chema, muchas gracias por tu respuesta. > > Al respecto de la ONCE, conozco bien lo que desarrollan, y lo que funciona > bien, es muy caro y al menos no llega a México si no es por una de sus > filiales, que encima aumentan más lo que cuesta. Tienen un editor > matemático, llamado Lambda, si no me equivoco, que te corre por 30 días y > todo; es 100% cerrado, y lo peor de todo es que al igual que pasa con > muchos lectores de pantalla, magnificadores, síntesis de voz, > reconocimiento de habla, etc, es que como son sectores de mercado muy > específico, la demanda es menor y el precio más alto. Claro, no hay nada en > contra de esto, pero no puedes modificar nada de lo que ellos te den, y si > por x o y razón vemos algo que no se contempla, para lo cual se usan estas > TI, tendré menos posibilidades de ponerme a la par rápidamente. > > Pero es muy cierto que no tengo mucha idea de lo que mencionas para hacer > la calculadora con cambios de estado, con lo que creo que continuaré > pasando código por eval en forma de cadena, y restringiendo a este para que > ejecute la menor cantidad de código no matemático posible. > > Lo que hago ahora es algo sencillo, pero no sé si esté del todo bien. El > programa toma una cadena, por ejemplo "R25" que es la representación de la > raíz de 25 (tuve problemas con el símbolo de raíz, creo que era debido a la > codificación); luego, en una clase se define un diccionario que tiene como > clave cada uno de los signos que llaman a una función que se pueden ver en > la calculadora, en este caso la "R", y como valor la función Python a la > que pertenecen, en este ejemplo, como cuando ejecuto eval() ya tengo > importado todo math, sería "sqrt". > > Ahora bien, solo es cuestión de reemplazar y eso lo hace una función, que > busca en una cadena si existe la clave del diccionario, y si existe, lo > reemplaza con su valor, y le suma un paréntesis izquierdo, de este modo, la > parte de "R25" quedaría como "sqrt(25". Siempre se le suma un paréntesis > derecho a la cadena en la última función que se ejecuta antes que se mande > a eval, ya que si se deja así no funcionará. Ahora, al terminar esta > expresión, Python recibe "sqrt(25)", y puede reconocerlo. > > Un problema que se me planteó después, es ¿qué sucedería si alguien hace > algo como "R25+R9"? El código que recibiría Python sería algo como > "sqrt(25+sqrt(9)"; por lo que además de lo anterior, hice un procedimiento > para que viera si hay signos, y si los hay, colocara un paréntesis > izquierdo y un derecho antes y después del signo, para que la suma anterior > se pudiera ver como "sqrt(25)+(sqrt(9))". > > Aún tengo mis dudas de que esto sea algo útil, ya que los paréntesis > aunque dan el resultado esperado, creo que no es la mejor idea, pero más o > menos esto es lo que actualmente se hace, y mi razón de escribir a la > lista. Si esto está bien, solo falta usar scipy para darme funciones de > cálculo estadístico, pero lo más seguro es que haya formas más inteligentes > de hacer esto. > > Justamente para esto preguntaba acerca de la sintaxis, porque supongo que > una vez terminado, sería más sencillo hacer que el parser se adapte a la > entrada de texto, que intentar moldear la cadena para que Python la > reconozca, pero no tengo mucha luz al respecto. Gracias, y saludos. > El 24/01/13 17:16, Chema Cortes escribió: > > El día 23 de enero de 2013 18:34, manuel >> escribió: >> >> Otra de las cosas que quisiera preguntar, es si se podría conseguir un >>> resultado de un porcentaje, pero escrito de la siguiente forma: 25+50%. >>> >>> En GCalctool, esto se hace, pero no sé leer el código; no entiendo de muy >>> buena forma cómo lo hacen; se asume que el 50% debe ser del número 25, >>> pero >>> cuando haces 25% se obtiene un 0.25, donde se asume no sé qué, se >>> multiplica >>> 25*1/100, y se obtiene el resultado. >>> >> Hay un modo sencillo de hacer la calculadora que es dar los resultados >> parciales a medida que se van aplicando los operadores. Por ejemplo, >> cuando sumas números, cada vez que se pulsa la tecla + se obtiene cada >> resultado parcial de la suma. >> >> Tal como lo planteas, tu idea es algo más complicada. Lo simple sería >> escribir la operación como si fuera una expresión python y dejar que >> la evalúe el intérprete. Si lo quieres hacer de otro modo, tendrás que >> empezar por distinguir qué operadores son totalizadores (cálculos >> parciales y totales) y en qué posición actúan (prefix/infix/sufix). >> Tal como creo que intuyes, no es nada fácil y necesitarás conocer algo >> de "teoría de máquinas de estados finitos" para entenderlo, algo que >> se sale bastante de un proyecto de final de curso. >> >> No tengo una recomendación clara que te pueda ayudar. Si sientes >> curiosidad, tal vez podría buscarte algo de código para hacer una >> calculadora. >> >> >> Sobre lo que preguntas del tanto por ciento, se suelen representan los >> números reales del 0 al 1 como factores multiplicativos, para lo que >> se muestran multiplicados por 100 o por 1000, añadiendo el sufijo % ó >> ? (unicode U+2030) respectivamente. Así, por ejemplo, el 50% >> representa al factor 0.5, más conocido por 1/2 >> >> En el caso de 25+50% se trataría de una operación de >> descuentos/incrementos, donde a 25 le sumas un 50% (de 25). El porqué >> el operador % funciona ahora así en lugar de limitarse a convertir 50% >> en 0.5 se debe a que la calculadora ha cambiado de estado al iniciarse >> la suma. En una suma, el 50% se toma como operación de incremento en >> lugar de factor multiplicativo. Es un ejemplo de funcionamiento de >> máquina de estados finitos. >> >> >> Por otra parte, no sé si conoces la Fundación ONCE española. Se dedica >> a adaptar dispositivos y aplicaciones a usuarios con deficiencia >> visual o motora (tiflotecnología) a través de su centro CIDAT >> (http://cidat.once.es). Mira en su FTP. >> >> Así mismo, existe una calculadora llamada ATCalc que se adapta a tus >> necesidades. Es programable (en pascal), lo que te puede dar ideas >> para tu calculadora: >> >> http://atcalc.sourceforge.net/**indexESP.htm >> >> >> >> >> > > > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From monobot.soft en gmail.com Fri Jan 25 08:24:51 2013 From: monobot.soft en gmail.com (monoBOT) Date: Fri, 25 Jan 2013 07:24:51 +0000 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython In-Reply-To: <51015417.2080806@gmail.com> References: <51001F13.3030609@gmail.com> <51015417.2080806@gmail.com> Message-ID: El 24 de enero de 2013 15:32, manuel escribió: Un problema que se me planteó después, es ¿qué sucedería si alguien hace > algo como "R25+R9"? El código que recibiría Python sería algo como > "sqrt(25+sqrt(9)"; por lo que además de lo anterior, hice un procedimiento > para que viera si hay signos, y si los hay, colocara un paréntesis > izquierdo y un derecho antes y después del signo, para que la suma anterior > se pudiera ver como "sqrt(25)+(sqrt(9))". > Yo creo q tienes razón cuando dices que ésto que haces puede ser un problema. Que pasa si el usuario quiere meter algo como R(9+16) Si lo intenta hacer como tu lo tienes montado terminará haciendo: R(9)+(16). Desde mi punto de vista tienes que dar controles en esta calculadora al usuario para que pueda definir sus operaciones, y no tratar de resolverlo todo tu. lo que quiero decir es que creo que es magnífica la idea de abrir paréntesis con operadores como raiz cuadrada pero los paréntesis deberían de estar entre los operadores que el usuario puede pulsar y tu cuando el usuario manda la operación al calcular tienes que comprobar que todos los paréntesis han sido cerrados y si no es así poner un paréntesis final. Si el usuario ha olvidado paréntesis intermedios pues entonces tendrá que releer la operación y darse cuenta del error por si mismo, intentar interpretar lo que quiere hacer en estos casos no tiene mucho sentido si me permites. -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From karreyes en gmail.com Fri Jan 25 18:41:35 2013 From: karreyes en gmail.com (Karla Reyes) Date: Fri, 25 Jan 2013 09:41:35 -0800 Subject: [Python-es] =?utf-8?q?Necesito_desarrollador_d_Python_en_M=C3=A9x?= =?utf-8?q?ico_DF?= Message-ID: Exito Empresarial (@Exito_Empresa) 1/24/13, 11:07 AM @pitonisaX Necesito desarrollador en PYHTON para D.F. sueldo 15 a 18 mil prestaciones de ley correo: contacto en exitoempresarial.org.mx URGE Me llego por Twitter por sí alguno esta interesado. Saludos! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego.uribe.gamez en gmail.com Fri Jan 25 19:27:54 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Fri, 25 Jan 2013 13:27:54 -0500 Subject: [Python-es] Se nesecita desarrollador Python en Bogota Colombia Message-ID: Buenas tardes, En la empresa donde estoy trabajando se requiere un desarrollador profesional, que programe en Python, para trabajar en un proyecto especifico También tiene que tener conocimientos medio-avanzados en javascript y en sockets en la parte del navegador. Si se sienten identificados y tienen la posibilidad de trabajar, por favor escribir sobre su experiencia o mandar una hoja de vida al siguiente correo: gerencia en lmgsyco.com Gracias. -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From juanlu001 en gmail.com Sat Jan 26 14:18:05 2013 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Sat, 26 Jan 2013 14:18:05 +0100 Subject: [Python-es] =?iso-8859-1?q?=5BOT=5D_presentz=2Ejs=2C_sincronizaci?= =?iso-8859-1?q?=F3n_de_v=EDdeo_y_diapositivas?= Message-ID: <5103D78D.3060206@gmail.com> Acabo de descubrir presentz.js, una biblioteca JavaScript para sincronizar vídeo y diapositivas (pensado para vídeos de charlas y conferencias). Hay también una web que hace las veces de alojamiento, aunque tanto la web como la librería son software libre (presentz.js es LGPL3). Aquí un ejemplo: http://presentz.org/codemotion12/calabash_opensource_testing_native_mobile_karl_krukow ¿Alguno conocéis otras ideas similares? Me parece muy interesante de cara a las diferentes PyCon y otros eventos que tenemos entre manos :) From reingart en gmail.com Sat Jan 26 17:09:05 2013 From: reingart en gmail.com (Mariano Reingart) Date: Sat, 26 Jan 2013 13:09:05 -0300 Subject: [Python-es] =?iso-8859-1?q?=5BOT=5D_presentz=2Ejs=2C_sincronizaci?= =?iso-8859-1?q?=F3n_de_v=EDdeo_y_diapositivas?= In-Reply-To: <5103D78D.3060206@gmail.com> References: <5103D78D.3060206@gmail.com> Message-ID: Para PyCon Argentina 2012 desarrollamos una aplicación web para sincronizar video + slides + subtitulos: http://ar.pycon.org/video2py_sample IMPORTANTE: es una prueba de concepto, ni el video ni los slides ni los subtitulos coinciden ni están compaginados, simplemente esta armado para mostrar como sería (de hecho, solo dura 1 minuto para probar la sincronización con el video). Les dejo el screenshot por si no les anda (tienen que tener un navegador moderno y actualizado): http://ar.pycon.org/video2py_sample/static/images/screenshot.png La app es muy simple, y básicamente usa la biblioteca Popcorn.js de mozilla para manejar el video html5: http://popcornjs.org/ Pueden ver el código fuente en: https://code.google.com/p/video2py/ Algunas charlas ya se empezaron a compaginar, pueden verlas en: http://ar.pycon.org/video2py Si lo desean pueden ingresar y colaborar, aunque por ahora es más una prueba de concepto porque la interfaz no es de lo más amigable que se podría hacer. Cualquier duda avisen, también los puedo contactar con Alan Etkin que es el que estuvo desarrollando la app. Sds Mariano Reingart http://www.sistemasagiles.com.ar http://reingart.blogspot.com 2013/1/26 Juan Luis Cano : > Acabo de descubrir presentz.js, una biblioteca JavaScript para sincronizar > vídeo y diapositivas (pensado para vídeos de charlas y conferencias). > > Hay también una web que hace las veces de alojamiento, aunque tanto la web > como la librería son software libre (presentz.js es LGPL3). Aquí un ejemplo: > > http://presentz.org/codemotion12/calabash_opensource_testing_native_mobile_karl_krukow > > ¿Alguno conocéis otras ideas similares? Me parece muy interesante de cara a > las diferentes PyCon y otros eventos que tenemos entre manos :) > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From reingart en gmail.com Sat Jan 26 18:23:22 2013 From: reingart en gmail.com (Mariano Reingart) Date: Sat, 26 Jan 2013 14:23:22 -0300 Subject: [Python-es] App web para para conferencias: web2conf Message-ID: Estimados: Para PyCon Argentina venimos usando web2conf, una aplicación web originalmente creada para PyCon US 2009/2010 (registración): https://code.google.com/p/web2conf/ El diseño es adaptable (el clásico de 2009 a 2011, "filete" que usamos en 2012 y bootstrap, especial para dispositivos móviles). Maneja prácticamente todos los aspectos (inscripción, recepción, revisión y publicación de charlas, cronograma personalizado, sponsors, estadísticas, credenciales, certificados, etc.) Es bi-lingue (traducida al español, originalmente en ingles, pero se puede agregar otros idiomas), tiene soporte para redes sociales, blogs y twitters, entre otras cosas. Abajo les paso un correo explicando todo por si les interesa. Un análisis más detallado lo pueden encontrar en el blog de pyconar y el informe final. Pueden verla funcionando en: http://ar.pycon.org/2009 http://ar.pycon.org/2010 http://ar.pycon.org/2011 http://ar.pycon.org/2012 y varios pydays: http://www.pyday.com.ar/rafaela2012 (de hecho, se puede simplificar el menu y muchos aspectos, todo es dinámico, incluyendo las páginas que tienen un formato wiki simple o se pueden editar online) Cualquier duda quedo en contacto, espero estos días liberar una app empaquetada simple y fácil de usar. Sds Mariano Reingart http://www.sistemasagiles.com.ar http://reingart.blogspot.com ---------- Forwarded message ---------- From: Mariano Reingart Date: 2013/1/25 Subject: Propuesta de app web para para PyCon Argentina 2013 y otros (web2conf: clasico y bootstrap, lo que venimos usando pero mejorado) To: Python Argentina Gente: A los que estén interesados en organizar una conferencia (o en colaborar con este proyecto), les comento que ya subí los ultimos commits del sitio de PyCon Argentina 2012. Además, se puede modificar el diseño, como muestra, revertí al diseño clásico y arranqué con un nuevo diseño mucho más simple y moderno usando bootstrap. Diseño Clásico (original, basada en PyCon US 2010): http://ar.pycon.org/classic http://ar.pycon.org/2012/static/pyconar2012_classic.png Diseño Bootstrap (ejemplo muy básico, faltan muchos ajustes): http://ar.pycon.org/bootstrap http://ar.pycon.org/2012/static/pyconar2012_bootstrap.png Se que le faltan algunas cosas y hay que corregir varios temas, la idea es simplificarlo lo mas posible para que sea una app para conferencias fácil de usar, sin mucha configuración, etc. Que contempla: casi todo lo que venimos haciendo (registración, revisión y publicación de charlas/posters/sprints, cronograma personalizado, página de disertantes, sponsors, bono contribución y dinero mail, credenciales, certificados). También esta traducido al inglés (y se podría agregar cualquier otro idioma), soporta inscripción simplificada con redes sociales, enlace con twitter y blog (mini-planeta) y un CMS muy simple (con editor tipo wiki o WYSWYG) Para más información pueden ver: https://code.google.com/p/web2conf/ Si hay interesados, avisennos (a mi o a Alan Etkin que se encargó el año pasado del tema), desde ya que si lo necesitan para la conferencia de este año me puedo ocupar (al menos yo) de las tareas de webmaster si asi lo deciden, y se aceptan parches, ideas y sugerencias. Sds Mariano Reingart http://www.sistemasagiles.com.ar http://reingart.blogspot.com From manuelcortez00 en gmail.com Sun Jan 27 03:17:07 2013 From: manuelcortez00 en gmail.com (manuelcortez) Date: Sat, 26 Jan 2013 20:17:07 -0600 Subject: [Python-es] Ayuda con sintaxis de Calculadora en Python usando WXPython In-Reply-To: References: <51001F13.3030609@gmail.com> <51015417.2080806@gmail.com> Message-ID: <51048E23.8060208@gmail.com> Hola, gracias por tu respuesta. Solo me gustaría aclarar una cosa, al hacer algo como R(9+16), realmente se hace R((9)+(16)). A efectos prácticos hace lo que se esperaría que haga estando en el paréntesis, pero no se ve muy bien el resultado. Imagino que solo es cuestión de jugar un poco con las funciones de cadenas. El usuario puede escribir paréntesis, pero la idea principal detrás de esto, es que al llamar a las funciones, como en este caso de raíz cuadrada, no se tenga que hacer algo como R(value); sino que sea lo más directo posible. Aunque por ahí eso solo es una preferencia, pues sé que si no llevara eso la tarea sería eternamente más sencilla. Gracias a todos los que han respondido; al final creo que haré una función para escribir el porcentaje, saliéndome un poco de la sintaxis "normal", y el resto es solo de ir añadiendo opciones de cálculo. Saludos. El 25/01/2013 01:24 a.m., monoBOT escribió: > > El 24 de enero de 2013 15:32, manuel > escribió: > > Un problema que se me planteó después, es ¿qué sucedería si > alguien hace algo como "R25+R9"? El código que recibiría Python > sería algo como "sqrt(25+sqrt(9)"; por lo que además de lo > anterior, hice un procedimiento para que viera si hay signos, y si > los hay, colocara un paréntesis izquierdo y un derecho antes y > después del signo, para que la suma anterior se pudiera ver como > "sqrt(25)+(sqrt(9))". > > > Yo creo q tienes razón cuando dices que ésto que haces puede ser un > problema. Que pasa si el usuario quiere meter algo como > R(9+16) > Si lo intenta hacer como tu lo tienes montado terminará haciendo: > R(9)+(16). > > Desde mi punto de vista tienes que dar controles en esta calculadora > al usuario para que pueda definir sus operaciones, y no tratar de > resolverlo todo tu. lo que quiero decir es que creo que es magnífica > la idea de abrir paréntesis con operadores como raiz cuadrada pero los > paréntesis deberían de estar entre los operadores que el usuario puede > pulsar y tu cuando el usuario manda la operación al calcular tienes > que comprobar que todos los paréntesis han sido cerrados y si no es > así poner un paréntesis final. Si el usuario ha olvidado paréntesis > intermedios pues entonces tendrá que releer la operación y darse > cuenta del error por si mismo, intentar interpretar lo que quiere > hacer en estos casos no tiene mucho sentido si me permites. > > -- > *monoBOT* > Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From gmourinopardo en yahoo.es Mon Jan 28 16:00:11 2013 From: gmourinopardo en yahoo.es (=?iso-8859-1?Q?Gonzalo_Mouri=FFfffffffffff1o_Pardo?=) Date: Mon, 28 Jan 2013 15:00:11 +0000 (GMT) Subject: [Python-es] Tiempo In-Reply-To: <51048E23.8060208@gmail.com> References: <51001F13.3030609@gmail.com> <51015417.2080806@gmail.com> <51048E23.8060208@gmail.com> Message-ID: <1359385211.98696.YahooMailNeo@web171902.mail.ir2.yahoo.com> Buenas tardes, Tengo una duda, alguien sabe como podría hacer que se ejecute una función un tiempo x después de entrar en un cuadro? Exactamente lo que quiero es que me imprima el dia de la semana cuando lleve 5 segundos dentro del cuadro. #!/usr/bin/env python # -*- coding: cp1252 -*- import os import wx import time class Aplicacion(wx.App):     def OnInit(self):         self.frame = Ventana(None, -1, title = "Post It")         self.SetTopWindow(self.frame)         self.frame.Show()         return True """Main Frame""" class Ventana(wx.Frame):          """Constructor"""     def __init__(self, parent, id, title):         wx.Frame.__init__(self, parent, id, title, size = (900, 275))         self.panel = Panel(self) class Panel(wx.Panel):     def __init__(self, parent):         wx.Panel.__init__(self, parent)         font = wx.Font(15, family = wx.FONTFAMILY_DEFAULT, style =                         wx.FONTSTYLE_NORMAL, weight = wx.FONTWEIGHT_BOLD,                         encoding = wx.FONTENCODING_CP1252)         self.sizer = wx.BoxSizer(wx.HORIZONTAL)         self.gbsizer = wx.GridBagSizer(2, 2)         self.sizer.Add(self.gbsizer, 1, wx.ALL | wx.EXPAND, border = 6)         self.SetSizer(self.sizer)         self.casa =  False         sem = {0 : ("Lunes", 169), 1 : ("Martes", 266), 2 : ("Miercoles" , 359),                3 : ("Jueves",  478), 4 : ("Viernes", 578), 5: ("Sabado", 686),                6 : ("Domingo", 783)}         for num in range(0,7):             self.cont = sem[num]             self.dia = self.cont[0]             y = num + 1             self.collab = wx.StaticText(self, -1, label = self.dia,  size = wx.Size                                         (103, 23), style = wx.ALIGN_CENTER)             self.collab.SetFont(font)             if y < 6:                 self.collab.SetBackgroundColour(wx.Colour(255, 255, 255))             else:                 self.collab.SetBackgroundColour(wx.Colour(255, 0, 0))             self.gbsizer.Add(self.collab, pos = wx.GBPosition(0, y), flag =                         wx.ALIGN_CENTER_VERTICAL, border = 6)             self.collab.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)             self.collab.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)         self.Bind(wx.EVT_PAINT,self.OnPaint)              def OnEnter(self, event):         #Time0 = int(time.clock())         #Time2 = 0         #while Time2 < 5:             #Time1 = int(time.clock())             #Time2 = Time1 - Time0         #if Time2 = 5:             #print(self.dia)     def OnLeave(self, event):         Time3 = int(time.clock())     def OnPaint(self, event):         self.dc = wx.PaintDC(self)         for colu in range (7):             rect_x = 122 + (105 * (colu-1))             width = 105             self.dc.DrawRectangle(rect_x, 5, width, 25)         event.Skip() if __name__ == "__main__":     app = Aplicacion(False)     app.MainLoop() ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Mon Jan 28 16:19:14 2013 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Mon, 28 Jan 2013 10:19:14 -0500 Subject: [Python-es] Tiempo In-Reply-To: <1359385211.98696.YahooMailNeo@web171902.mail.ir2.yahoo.com> References: <51001F13.3030609@gmail.com> <51015417.2080806@gmail.com> <51048E23.8060208@gmail.com> <1359385211.98696.YahooMailNeo@web171902.mail.ir2.yahoo.com> Message-ID: 2013/1/28 Gonzalo Mouriÿfffffffffff1o Pardo > Buenas tardes, > Tengo una duda, alguien sabe como podría hacer que se ejecute una función > un tiempo x después de entrar en un cuadro? > > time.sleep() ? ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From txema en nabla.net Mon Jan 28 16:27:53 2013 From: txema en nabla.net (Txema Vicente) Date: Mon, 28 Jan 2013 16:27:53 +0100 Subject: [Python-es] Tiempo In-Reply-To: <1359385211.98696.YahooMailNeo@web171902.mail.ir2.yahoo.com> References: <51001F13.3030609@gmail.com> <51015417.2080806@gmail.com> <51048E23.8060208@gmail.com> <1359385211.98696.YahooMailNeo@web171902.mail.ir2.yahoo.com> Message-ID: <510698F9.4070306@nabla.net> Buenas En tu clase Ventana(wx.Frame), un método disparado por el evento EVT_ENTER_WINDOW que haga algo como: def EntraEnCuadro(self): self.timer = wx.Timer(self) self.timer.Start(500) self.Bind(wx.EVT_TIMER, self.ImprimeDiaSemana) El 28/01/2013 16:00, Gonzalo Mouriÿfffffffffff1o Pardo escribió: > Buenas tardes, > Tengo una duda, alguien sabe como podría hacer que se ejecute una > función un tiempo x después de entrar en un cuadro? > Exactamente lo que quiero es que me imprima el dia de la semana cuando > lleve 5 segundos dentro del cuadro. > > #!/usr/bin/env python > # -*- coding: cp1252 -*- > > import os > import wx > import time > > class Aplicacion(wx.App): > > def OnInit(self): > self.frame = Ventana(None, -1, title = "Post It") > self.SetTopWindow(self.frame) > self.frame.Show() > return True > > """Main Frame""" > class Ventana(wx.Frame): > """Constructor""" > def __init__(self, parent, id, title): > wx.Frame.__init__(self, parent, id, title, size = (900, 275)) > self.panel = Panel(self) > > class Panel(wx.Panel): > def __init__(self, parent): > wx.Panel.__init__(self, parent) > font = wx.Font(15, family = wx.FONTFAMILY_DEFAULT, style = > wx.FONTSTYLE_NORMAL, weight = wx.FONTWEIGHT_BOLD, > encoding = wx.FONTENCODING_CP1252) > self.sizer = wx.BoxSizer(wx.HORIZONTAL) > self.gbsizer = wx.GridBagSizer(2, 2) > self.sizer.Add(self.gbsizer, 1, wx.ALL | wx.EXPAND, border = 6) > self.SetSizer(self.sizer) > self.casa = False > sem = {0 : ("Lunes", 169), 1 : ("Martes", 266), 2 : > ("Miercoles" , 359), > 3 : ("Jueves", 478), 4 : ("Viernes", 578), 5: > ("Sabado", 686), > 6 : ("Domingo", 783)} > for num in range(0,7): > self.cont = sem[num] > self.dia = self.cont[0] > y = num + 1 > self.collab = wx.StaticText(self, -1, label = self.dia, size = wx.Size > (103, 23), style = wx.ALIGN_CENTER) > > self.collab.SetFont(font) > if y < 6: > self.collab.SetBackgroundColour(wx.Colour(255, 255, 255)) > else: > self.collab.SetBackgroundColour(wx.Colour(255, 0, 0)) > > self.gbsizer.Add(self.collab, pos = wx.GBPosition(0, y), flag = > wx.ALIGN_CENTER_VERTICAL, border = 6) > self.collab.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter) > self.collab.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave) > self.Bind(wx.EVT_PAINT,self.OnPaint) > def OnEnter(self, event): > #Time0 = int(time.clock()) > #Time2 = 0 > #while Time2 < 5: > #Time1 = int(time.clock()) > #Time2 = Time1 - Time0 > #if Time2 = 5: > #print(self.dia) > > def OnLeave(self, event): > Time3 = int(time.clock()) > > def OnPaint(self, event): > self.dc = wx.PaintDC(self) > for colu in range (7): > rect_x = 122 + (105 * (colu-1)) > width = 105 > self.dc.DrawRectangle(rect_x, 5, width, 25) > event.Skip() > > if __name__ == "__main__": > app = Aplicacion(False) > app.MainLoop() > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ nabla.net ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: nabla.gif Type: image/gif Size: 55563 bytes Desc: no disponible URL: From reingart en gmail.com Mon Jan 28 16:37:19 2013 From: reingart en gmail.com (Mariano Reingart) Date: Mon, 28 Jan 2013 12:37:19 -0300 Subject: [Python-es] Tiempo In-Reply-To: <510698F9.4070306@nabla.net> References: <51001F13.3030609@gmail.com> <51015417.2080806@gmail.com> <51048E23.8060208@gmail.com> <1359385211.98696.YahooMailNeo@web171902.mail.ir2.yahoo.com> <510698F9.4070306@nabla.net> Message-ID: También existe CallLater, una forma simple de llamar a una función en un período de tiempo determinado (una única vez): wx.CallLater(5000, self.ImprimeDiaSemana) Para más info ver: http://wxpython.org/docs/api/wx.CallLater-class.html Incluso, si el período de tiempo no es necesario, podés usar wx.CallAfter, que llama a la función después de terminar de procesar el evento: http://wxpython.org/docs/api/wx-module.html#CallAfter Sds Mariano Reingart http://www.sistemasagiles.com.ar http://reingart.blogspot.com On Mon, Jan 28, 2013 at 12:27 PM, Txema Vicente wrote: > Buenas > > En tu clase Ventana(wx.Frame), un método disparado por el evento > EVT_ENTER_WINDOW que haga algo como: > > def EntraEnCuadro(self): > self.timer = wx.Timer(self) > self.timer.Start(500) > self.Bind(wx.EVT_TIMER, self.ImprimeDiaSemana) > > > El 28/01/2013 16:00, Gonzalo Mouriÿfffffffffff1o Pardo escribió: > > Buenas tardes, > Tengo una duda, alguien sabe como podría hacer que se ejecute una función > un tiempo x después de entrar en un cuadro? > Exactamente lo que quiero es que me imprima el dia de la semana cuando > lleve 5 segundos dentro del cuadro. > > #!/usr/bin/env python > # -*- coding: cp1252 -*- > > import os > import wx > import time > > class Aplicacion(wx.App): > > def OnInit(self): > self.frame = Ventana(None, -1, title = "Post It") > self.SetTopWindow(self.frame) > self.frame.Show() > return True > > """Main Frame""" > class Ventana(wx.Frame): > > """Constructor""" > def __init__(self, parent, id, title): > wx.Frame.__init__(self, parent, id, title, size = (900, 275)) > self.panel = Panel(self) > > class Panel(wx.Panel): > def __init__(self, parent): > wx.Panel.__init__(self, parent) > font = wx.Font(15, family = wx.FONTFAMILY_DEFAULT, style = > wx.FONTSTYLE_NORMAL, weight = wx.FONTWEIGHT_BOLD, > encoding = wx.FONTENCODING_CP1252) > self.sizer = wx.BoxSizer(wx.HORIZONTAL) > self.gbsizer = wx.GridBagSizer(2, 2) > self.sizer.Add(self.gbsizer, 1, wx.ALL | wx.EXPAND, border = 6) > self.SetSizer(self.sizer) > self.casa = False > sem = {0 : ("Lunes", 169), 1 : ("Martes", 266), 2 : ("Miercoles" , > 359), > 3 : ("Jueves", 478), 4 : ("Viernes", 578), 5: ("Sabado", > 686), > 6 : ("Domingo", 783)} > for num in range(0,7): > self.cont = sem[num] > self.dia = self.cont[0] > y = num + 1 > self.collab = wx.StaticText(self, -1, label = self.dia, size > = wx.Size > (103, 23), style = wx.ALIGN_CENTER) > > self.collab.SetFont(font) > if y < 6: > self.collab.SetBackgroundColour(wx.Colour(255, 255, 255)) > else: > self.collab.SetBackgroundColour(wx.Colour(255, 0, 0)) > > self.gbsizer.Add(self.collab, pos = wx.GBPosition(0, y), > flag = > wx.ALIGN_CENTER_VERTICAL, border = 6) > self.collab.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter) > self.collab.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave) > self.Bind(wx.EVT_PAINT,self.OnPaint) > > def OnEnter(self, event): > #Time0 = int(time.clock()) > #Time2 = 0 > #while Time2 < 5: > #Time1 = int(time.clock()) > #Time2 = Time1 - Time0 > #if Time2 = 5: > #print(self.dia) > > def OnLeave(self, event): > Time3 = int(time.clock()) > > def OnPaint(self, event): > self.dc = wx.PaintDC(self) > for colu in range (7): > rect_x = 122 + (105 * (colu-1)) > width = 105 > self.dc.DrawRectangle(rect_x, 5, width, 25) > event.Skip() > > if __name__ == "__main__": > app = Aplicacion(False) > app.MainLoop() > > > _______________________________________________ > Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > [image: nabla.net] > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: nabla.gif Type: image/gif Size: 55563 bytes Desc: no disponible URL: From glez_b en comunidad.unam.mx Tue Jan 29 06:41:03 2013 From: glez_b en comunidad.unam.mx (Boris Vladimir Comi) Date: Tue, 29 Jan 2013 05:41:03 +0000 Subject: [Python-es] Plot trajectories on an map using matplotlib-basemap Message-ID: <9D6FC4172EA6B64B9044B9B8196DBB250E009F3C@BL2PRD0710MB373.namprd07.prod.outlook.com> #! /usr/bin/python import numpy as np data = np.loadtxt('path-tracks.csv',dtype=np.str,delimiter=',',skiprows=1) print data [['19.70' '-95.20' '2/5/04 6:45 AM' '1' '-38' 'CCM'] ['19.70' '-94.70' '2/5/04 7:45 AM' '1' '-48' 'CCM'] ['19.30' '-93.90' '2/5/04 8:45 AM' '1' '-60' 'CCM'] ['19.00' '-93.50' '2/5/04 9:45 AM' '1' '-58' 'CCM'] ['19.00' '-92.80' '2/5/04 10:45 AM' '1' '-50' 'CCM'] ['19.20' '-92.60' '2/5/04 11:45 AM' '1' '-40' 'CCM'] ['19.90' '-93.00' '2/5/04 12:45 PM' '1' '-43' 'CCM'] ['20.00' '-92.80' '2/5/04 1:15 PM' '1' '-32' 'CCM'] ['23.10' '-100.20' '30/5/04 4:45 AM' '2' '-45' 'SCME'] ['23.20' '-100.00' '30/5/04 5:45 AM' '2' '-56' 'SCME'] ['23.30' '-100.00' '30/5/04 6:45 AM' '2' '-48' 'SCME'] ['23.30' '-100.20' '30/5/04 7:45 AM' '2' '-32' 'SCME'] ['23.40' '-99.00' '31/5/04 3:15 AM' '3' '-36' 'SCM'] ['23.50' '-98.90' '31/5/04 4:15 AM' '3' '-46' 'SCM'] ['23.60' '-98.70' '31/5/04 5:15 AM' '3' '-68' 'SCM'] ['23.70' '-98.80' '31/5/04 6:15 AM' '3' '-30' 'SCM']] with the above code I get an array whose columns represent: [Lat, Lon, Date, Identifier, Temperatures, Category]. Now, I will put a code that allows me to plot the first and second column on the map of Mexico: #!/usr/bin/python #Project Storm: Plot trajectories of convective systems #import libraries import numpy as np from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as pl # Plot a map for Mexico m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) m.bluemarble() m.drawcoastlines(linewidth=0.5) m.drawcountries(linewidth=0.5) m.drawstates(linewidth=0.5) #Draw parallels and meridians m.drawparallels(np.arange(10.,35.,5.)) m.drawmeridians(np.arange(-120.,-80.,10.)) m.drawmapboundary(fill_color='aqua') #Open file whit numpy data = np.loadtxt('path-tracks.csv', dtype=np.str,delimiter=' , ', skiprows=1) latitude = data[:,0] longitude = data[:,1] #Convert latitude and longitude to coordinates X and Y x, y = m(longitude, latitude) #Plot the points on the map pl.plot(x,y,'ro-') pl.show() The points plotted on the map, corresponding to three different paths with a line connecting all points. Mi final idea is to draw a line connecting the points associated with each path, How I can do this? or How should I structure my data to plot the different paths? is posible draw an identifier or a mark for each path? how I can set the size of the figure so that it can distinguish the separation between the points? ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From glez_b en comunidad.unam.mx Tue Jan 29 07:56:23 2013 From: glez_b en comunidad.unam.mx (Boris Vladimir Comi) Date: Tue, 29 Jan 2013 06:56:23 +0000 Subject: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap Message-ID: <9D6FC4172EA6B64B9044B9B8196DBB250E00A065@BL2PRD0710MB373.namprd07.prod.outlook.com> #! /usr/bin/python import numpy as np data = np.loadtxt('path-tracks.csv',dtype=np.str,delimiter=',',skiprows=1) print data [['19.70' '-95.20' '2/5/04 6:45 AM' '1' '-38' 'CCM'] ['19.70' '-94.70' '2/5/04 7:45 AM' '1' '-48' 'CCM'] ['19.30' '-93.90' '2/5/04 8:45 AM' '1' '-60' 'CCM'] ['19.00' '-93.50' '2/5/04 9:45 AM' '1' '-58' 'CCM'] ['19.00' '-92.80' '2/5/04 10:45 AM' '1' '-50' 'CCM'] ['19.20' '-92.60' '2/5/04 11:45 AM' '1' '-40' 'CCM'] ['19.90' '-93.00' '2/5/04 12:45 PM' '1' '-43' 'CCM'] ['20.00' '-92.80' '2/5/04 1:15 PM' '1' '-32' 'CCM'] ['23.10' '-100.20' '30/5/04 4:45 AM' '2' '-45' 'SCME'] ['23.20' '-100.00' '30/5/04 5:45 AM' '2' '-56' 'SCME'] ['23.30' '-100.00' '30/5/04 6:45 AM' '2' '-48' 'SCME'] ['23.30' '-100.20' '30/5/04 7:45 AM' '2' '-32' 'SCME'] ['23.40' '-99.00' '31/5/04 3:15 AM' '3' '-36' 'SCM'] ['23.50' '-98.90' '31/5/04 4:15 AM' '3' '-46' 'SCM'] ['23.60' '-98.70' '31/5/04 5:15 AM' '3' '-68' 'SCM'] ['23.70' '-98.80' '31/5/04 6:15 AM' '3' '-30' 'SCM']] Con el codigo de arriba, obtengo un arreglo cuyas columnas representan: [Lat, Lon, Date, Identifier, Temperatures, Category]. Ahora, con el codigo de abajo ploteo la primera y segunda columna sobre un mapa de México: #!/usr/bin/python #Project Storm: Plot trajectories of convective systems #import libraries import numpy as np from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as pl # Plot a map for Mexico m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) m.bluemarble() m.drawcoastlines(linewidth=0.5) m.drawcountries(linewidth=0.5) m.drawstates(linewidth=0.5) #Draw parallels and meridians m.drawparallels(np.arange(10.,35.,5.)) m.drawmeridians(np.arange(-120.,-80.,10.)) m.drawmapboundary(fill_color='aqua') #Open file whit numpy data = np.loadtxt('path-tracks.csv', dtype=np.str,delimiter=' , ', skiprows=1) latitude = data[:,0] longitude = data[:,1] #Convert latitude and longitude to coordinates X and Y x, y = m(longitude, latitude) #Plot the points on the map pl.plot(x,y,'ro-') pl.show() Los puntos graficados en el mapa, corresponden a tres diferentes trayectorias con una linea que conecta todos los puntos. MI idea es dibujar una linea que conecte los puntos asociados a cada trayectoria, como puedo lograr esto? o como debo estructurar mis datos para plotear las diferentes trayectorias? es posible dibujar un identificador o una marca que me represente cada trayectoria? como puedo configuar el tamaño de la figura para que pueda tener una mejor vista de las trayectorias? ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Tue Jan 29 08:48:40 2013 From: kikocorreoso en gmail.com (Kiko) Date: Tue, 29 Jan 2013 08:48:40 +0100 Subject: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap In-Reply-To: <9D6FC4172EA6B64B9044B9B8196DBB250E00A065@BL2PRD0710MB373.namprd07.prod.outlook.com> References: <9D6FC4172EA6B64B9044B9B8196DBB250E00A065@BL2PRD0710MB373.namprd07.prod.outlook.com> Message-ID: > > #!/usr/bin/python > #Project Storm: Plot trajectories of convective systems > #import libraries > > import numpy as np > from mpl_toolkits.basemap import Basemap > import matplotlib.pyplot as pl > > # Plot a map for Mexico > > m = Basemap(projection='cyl', llcrnrlat=12, > urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', > area_thresh=1000.) > m.bluemarble() > m.drawcoastlines(linewidth=0.5) > m.drawcountries(linewidth=0.5) > m.drawstates(linewidth=0.5) > > #Draw parallels and meridians > > m.drawparallels(np.arange(10.,35.,5.)) > m.drawmeridians(np.arange(-120.,-80.,10.)) > m.drawmapboundary(fill_color='aqua') > > #Open file whit numpy > > El código anterior es lo que quieres. A partir de aquí usaría: data = np.array([['19.70','-95.20','2/5/04 6:45 AM','1','-38','CCM'], ['19.70','-94.70','2/5/04 7:45 AM','1','-48','CCM'], ['19.30','-93.90','2/5/04 8:45 AM','1','-60','CCM'], ['19.00','-93.50','2/5/04 9:45 AM','1','-58','CCM'], ['19.00','-92.80','2/5/04 10:45 AM','1','-50','CCM'], ['19.20','-92.60','2/5/04 11:45 AM','1','-40','CCM'], ['19.90','-93.00','2/5/04 12:45 PM','1','-43','CCM'], ['20.00','-92.80','2/5/04 1:15 PM','1','-32','CCM'], ['23.10','-100.20','30/5/04 4:45 AM','2','-45','SCME'], ['23.20','-100.00','30/5/04 5:45 AM','2','-56','SCME'], ['23.30','-100.00','30/5/04 6:45 AM','2','-48','SCME'], ['23.30','-100.20','30/5/04 7:45 AM','2','-32','SCME'], ['23.40','-99.00','31/5/04 3:15 AM','3','-36','SCM'], ['23.50','-98.90','31/5/04 4:15 AM','3','-46','SCM'], ['23.60','-98.70','31/5/04 5:15 AM','3','-68','SCM'], ['23.70','-98.80','31/5/04 6:15 AM','3','-30','SCM']]) latitude = data[:,0].astype(np.float) longitude = data[:,1].astype(np.float) ## x, y no te hacen falta para nada en este contexto #Plot the points on the map, puedes usar un for. En este caso son solo tres casos y lo pongo explícito. pl.plot(longitude[data[:,3] == '1'], latitude[data[:,3] == '1'],'ro-') # El primer ¿sistema convectivo de mesoescala? pl.plot(longitude[data[:,3] == '2'], latitude[data[:,3] == '2'],'yo-') # el segundo pl.plot(longitude[data[:,3] == '3'], latitude[data[:,3] == '3'],'go-') # y el tercero pl.show() Para el tema de tamaños de figura y etiquetas en la trayectoria puedes echarle un ojo a: http://pybonacci.wordpress.com/tag/tutorial-matplotlib-pyplot/ Si solo te interesa ver la zona de México donde suceden las tormentas, acótalo en: m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) Saludos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From juanlu001 en gmail.com Tue Jan 29 08:49:15 2013 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Tue, 29 Jan 2013 08:49:15 +0100 Subject: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap In-Reply-To: <9D6FC4172EA6B64B9044B9B8196DBB250E00A065@BL2PRD0710MB373.namprd07.prod.outlook.com> References: <9D6FC4172EA6B64B9044B9B8196DBB250E00A065@BL2PRD0710MB373.namprd07.prod.outlook.com> Message-ID: <51077EFB.40204@gmail.com> On 01/29/2013 07:56 AM, Boris Vladimir Comi wrote: > #! /usr/bin/python > import numpy as np > data = > np.loadtxt('path-tracks.csv',dtype=np.str,delimiter=',',skiprows=1) > print data > > [['19.70' '-95.20' '2/5/04 6:45 AM' '1' '-38' 'CCM'] > ['19.70' '-94.70' '2/5/04 7:45 AM' '1' '-48' 'CCM'] > ['19.30' '-93.90' '2/5/04 8:45 AM' '1' '-60' 'CCM'] > ['19.00' '-93.50' '2/5/04 9:45 AM' '1' '-58' 'CCM'] > ['19.00' '-92.80' '2/5/04 10:45 AM' '1' '-50' 'CCM'] > ['19.20' '-92.60' '2/5/04 11:45 AM' '1' '-40' 'CCM'] > ['19.90' '-93.00' '2/5/04 12:45 PM' '1' '-43' 'CCM'] > ['20.00' '-92.80' '2/5/04 1:15 PM' '1' '-32' 'CCM'] > ['23.10' '-100.20' '30/5/04 4:45 AM' '2' '-45' 'SCME'] > ['23.20' '-100.00' '30/5/04 5:45 AM' '2' '-56' 'SCME'] > ['23.30' '-100.00' '30/5/04 6:45 AM' '2' '-48' 'SCME'] > ['23.30' '-100.20' '30/5/04 7:45 AM' '2' '-32' 'SCME'] > ['23.40' '-99.00' '31/5/04 3:15 AM' '3' '-36' 'SCM'] > ['23.50' '-98.90' '31/5/04 4:15 AM' '3' '-46' 'SCM'] > ['23.60' '-98.70' '31/5/04 5:15 AM' '3' '-68' 'SCM'] > ['23.70' '-98.80' '31/5/04 6:15 AM' '3' '-30' 'SCM']] > > Con el codigo de arriba, obtengo un arreglo cuyas columnas > representan: [Lat, Lon, Date, Identifier, Temperatures, Category]. > Ahora, con el codigo de abajo ploteo la primera y segunda columna > sobre un mapa de México: > > > > #!/usr/bin/python > #Project Storm: Plot trajectories of convective systems > #import libraries > > import numpy as np > from mpl_toolkits.basemap import Basemap > import matplotlib.pyplot as pl > > #Plot a map for Mexico > > m = Basemap(projection='cyl', llcrnrlat=12, > urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', > area_thresh=1000.) > m.bluemarble() > m.drawcoastlines(linewidth=0.5) > m.drawcountries(linewidth=0.5) > m.drawstates(linewidth=0.5) > > #Draw parallels and meridians > > m.drawparallels(np.arange(10.,35.,5.)) > m.drawmeridians(np.arange(-120.,-80.,10.)) > m.drawmapboundary(fill_color='aqua') > > #Open file whit numpy > > data = np.loadtxt('path-tracks.csv', dtype=np.str,delimiter=' , ', > skiprows=1) > latitude = data[:,0] > longitude = data[:,1] > > #Convert latitude and longitudeto coordinates X and Y > > x, y = m(longitude, latitude) > > #Plot the points on the map > > pl.plot(x,y,'ro-') > pl.show() > > > > Los puntos graficados en el mapa, corresponden a tres diferentes > trayectorias con una linea que conecta todos los puntos. MI idea es > dibujar una linea que conecte los puntos asociados a cada trayectoria, > como puedo lograr esto? o como debo estructurar mis datos para plotear > las diferentes trayectorias? > > es posible dibujar un identificador o una marca que me represente cada > trayectoria? > > como puedo configuar el tamaño de la figura para que pueda tener una > mejor vista de las trayectorias? > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ Si reúnes en las variables x e y los valores de las tres trayectorias, naturalmente se mezclarán las tres en la representación. En primer lugar deberías separar las tres: tres variables latitude y tres variables longitude. ¿Por tus datos entiendo que la última columna es la que diferencia las tres? lat_ccm = data[data[:, -1] == 'CCM', 0] lon_ccm = data[data[:, -1] == 'CCM', 1] lat_scme = data[data[:, -1] == 'SCME', 0] lon_scme = data[data[:, -1] == 'SCME', 1] lat_scm = data[data[:, -1] == 'SCM', 0] lon_scm = data[data[:, -1] == 'SCM', 1] ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From glez_b en comunidad.unam.mx Tue Jan 29 20:37:47 2013 From: glez_b en comunidad.unam.mx (Boris Vladimir Comi) Date: Tue, 29 Jan 2013 19:37:47 +0000 Subject: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap In-Reply-To: References: <9D6FC4172EA6B64B9044B9B8196DBB250E00A065@BL2PRD0710MB373.namprd07.prod.outlook.com>, Message-ID: <9D6FC4172EA6B64B9044B9B8196DBB250E00B348@BL2PRD0710MB373.namprd07.prod.outlook.com> Gracias por tomarte el tiempo en responder, ya estructure mis datos en la forma que me indicas y he obtneido el producuto deseado. Ahora mi preguntas es, si mi archivo tiene mas de 30 trayectorias como las puedo graficar usando un for ________________________________ De: Python-es [python-es-bounces+glez_b=comunidad.unam.mx en python.org] en nombre de Kiko [kikocorreoso en gmail.com] Enviado: martes, 29 de enero de 2013 01:48 a.m. Para: La lista de python en castellano Asunto: Re: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap #!/usr/bin/python #Project Storm: Plot trajectories of convective systems #import libraries import numpy as np from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as pl # Plot a map for Mexico m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) m.bluemarble() m.drawcoastlines(linewidth=0.5) m.drawcountries(linewidth=0.5) m.drawstates(linewidth=0.5) #Draw parallels and meridians m.drawparallels(np.arange(10.,35.,5.)) m.drawmeridians(np.arange(-120.,-80.,10.)) m.drawmapboundary(fill_color='aqua') #Open file whit numpy El código anterior es lo que quieres. A partir de aquí usaría: data = np.array([['19.70','-95.20','2/5/04 6:45 AM','1','-38','CCM'], ['19.70','-94.70','2/5/04 7:45 AM','1','-48','CCM'], ['19.30','-93.90','2/5/04 8:45 AM','1','-60','CCM'], ['19.00','-93.50','2/5/04 9:45 AM','1','-58','CCM'], ['19.00','-92.80','2/5/04 10:45 AM','1','-50','CCM'], ['19.20','-92.60','2/5/04 11:45 AM','1','-40','CCM'], ['19.90','-93.00','2/5/04 12:45 PM','1','-43','CCM'], ['20.00','-92.80','2/5/04 1:15 PM','1','-32','CCM'], ['23.10','-100.20','30/5/04 4:45 AM','2','-45','SCME'], ['23.20','-100.00','30/5/04 5:45 AM','2','-56','SCME'], ['23.30','-100.00','30/5/04 6:45 AM','2','-48','SCME'], ['23.30','-100.20','30/5/04 7:45 AM','2','-32','SCME'], ['23.40','-99.00','31/5/04 3:15 AM','3','-36','SCM'], ['23.50','-98.90','31/5/04 4:15 AM','3','-46','SCM'], ['23.60','-98.70','31/5/04 5:15 AM','3','-68','SCM'], ['23.70','-98.80','31/5/04 6:15 AM','3','-30','SCM']]) latitude = data[:,0].astype(np.float) longitude = data[:,1].astype(np.float) ## x, y no te hacen falta para nada en este contexto #Plot the points on the map, puedes usar un for. En este caso son solo tres casos y lo pongo explícito. pl.plot(longitude[data[:,3] == '1'], latitude[data[:,3] == '1'],'ro-') # El primer ¿sistema convectivo de mesoescala? pl.plot(longitude[data[:,3] == '2'], latitude[data[:,3] == '2'],'yo-') # el segundo pl.plot(longitude[data[:,3] == '3'], latitude[data[:,3] == '3'],'go-') # y el tercero pl.show() Para el tema de tamaños de figura y etiquetas en la trayectoria puedes echarle un ojo a: http://pybonacci.wordpress.com/tag/tutorial-matplotlib-pyplot/ Si solo te interesa ver la zona de México donde suceden las tormentas, acótalo en: m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) Saludos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Wed Jan 30 09:01:18 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 30 Jan 2013 09:01:18 +0100 Subject: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap In-Reply-To: <9D6FC4172EA6B64B9044B9B8196DBB250E00B348@BL2PRD0710MB373.namprd07.prod.outlook.com> References: <9D6FC4172EA6B64B9044B9B8196DBB250E00A065@BL2PRD0710MB373.namprd07.prod.outlook.com> <9D6FC4172EA6B64B9044B9B8196DBB250E00B348@BL2PRD0710MB373.namprd07.prod.outlook.com> Message-ID: El 29 de enero de 2013 20:37, Boris Vladimir Comi escribió: > Gracias por tomarte el tiempo en responder, ya estructure mis datos en > la forma que me indicas y he obtneido el producuto deseado. Ahora mi > preguntas es, si mi archivo tiene mas de 30 trayectorias como las puedo > graficar usando un for > > > > > ------------------------------ > *De:* Python-es [python-es-bounces+glez_b=comunidad.unam.mx en python.org] > en nombre de Kiko [kikocorreoso en gmail.com] > *Enviado:* martes, 29 de enero de 2013 01:48 a.m. > *Para:* La lista de python en castellano > *Asunto:* Re: [Python-es] Dibujar trayectorias sobre un mapa usando > matplotlib-basemap > > > >> #!/usr/bin/python >> #Project Storm: Plot trajectories of convective systems >> #import libraries >> >> import numpy as np >> from mpl_toolkits.basemap import Basemap >> import matplotlib.pyplot as pl >> >> # Plot a map for Mexico >> >> m = Basemap(projection='cyl', llcrnrlat=12, >> urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', >> area_thresh=1000.) >> m.bluemarble() >> m.drawcoastlines(linewidth=0.5) >> m.drawcountries(linewidth=0.5) >> m.drawstates(linewidth=0.5) >> >> #Draw parallels and meridians >> >> m.drawparallels(np.arange(10.,35.,5.)) >> m.drawmeridians(np.arange(-120.,-80.,10.)) >> m.drawmapboundary(fill_color='aqua') >> >> #Open file whit numpy >> >> > El código anterior es lo que quieres. A partir de aquí usaría: > > data = np.array([['19.70','-95.20','2/5/04 6:45 AM','1','-38','CCM'], > > ['19.70','-94.70','2/5/04 7:45 AM','1','-48','CCM'], > > ['19.30','-93.90','2/5/04 8:45 AM','1','-60','CCM'], > > ['19.00','-93.50','2/5/04 9:45 AM','1','-58','CCM'], > > ['19.00','-92.80','2/5/04 10:45 AM','1','-50','CCM'], > > ['19.20','-92.60','2/5/04 11:45 AM','1','-40','CCM'], > > ['19.90','-93.00','2/5/04 12:45 PM','1','-43','CCM'], > > ['20.00','-92.80','2/5/04 1:15 PM','1','-32','CCM'], > > ['23.10','-100.20','30/5/04 4:45 AM','2','-45','SCME'], > > ['23.20','-100.00','30/5/04 5:45 AM','2','-56','SCME'], > > ['23.30','-100.00','30/5/04 6:45 AM','2','-48','SCME'], > > ['23.30','-100.20','30/5/04 7:45 AM','2','-32','SCME'], > > ['23.40','-99.00','31/5/04 3:15 AM','3','-36','SCM'], > > ['23.50','-98.90','31/5/04 4:15 AM','3','-46','SCM'], > > ['23.60','-98.70','31/5/04 5:15 AM','3','-68','SCM'], > > ['23.70','-98.80','31/5/04 6:15 AM','3','-30','SCM']]) > > latitude = data[:,0].astype(np.float) > > longitude = data[:,1].astype(np.float) > > > ## x, y no te hacen falta para nada en este contexto > > > #Plot the points on the map, puedes usar un for. En este caso son solo > tres casos y lo pongo explícito. > > > pl.plot(longitude[data[:,3] == '1'], latitude[data[:,3] == '1'],'ro-') # > El primer ¿sistema convectivo de mesoescala? > > pl.plot(longitude[data[:,3] == '2'], latitude[data[:,3] == '2'],'yo-') # > el segundo > > pl.plot(longitude[data[:,3] == '3'], latitude[data[:,3] == '3'],'go-') # y > el tercero > > pl.show() > > Hola, fíjate en qué es lo que cambia en las tres líneas de los plots anteriores. Cambia el número del caso/tormenta ('1', '2', '3') y el color de la línea para la trayectoria de la tormenta (r, y, g). Usa un for que recorra los posibles casos y usa colores diferentes para cada caso ( http://matplotlib.org/api/colors_api.html) si quieres que tengan colores diferentes. Los posibles casos los puedes obtener usando un set. No te pongo el código de forma explícita para que lo pienses un poco. Si no eres capaz de conseguirlo vuelve a preguntar. Saludos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Thu Jan 31 12:01:30 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Thu, 31 Jan 2013 12:01:30 +0100 Subject: [Python-es] =?iso-8859-1?q?Fwd=3A_=5BANN=5D_Summer_School_=22Adva?= =?iso-8859-1?q?nced_Scientific_Programming_in_Python=22_in_Z=FCric?= =?iso-8859-1?q?h=2C_Switzerland?= Message-ID: El año pasado estuve yo, y fue bastante interesante. Científicos que haya por aquí, consideradlo. ---------- Forwarded message ---------- From: Tiziano Zito Date: 31 January 2013 11:56 Subject: [Numpy-discussion] [ANN] Summer School "Advanced Scientific Programming in Python" in Zürich, Switzerland To: numpy-discussion en scipy.org Advanced Scientific Programming in Python ========================================= a Summer School by the G-Node and the Physik-Institut, University of Zurich Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists actually use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques, incorporating theoretical lectures and practical exercises tailored to the needs of a programming scientist. New skills will be tested in a real programming project: we will team up to develop an entertaining scientific computer game. We use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. We show how clean language design, ease of extensibility, and the great wealth of open source libraries for scientific computing and data visualization are driving Python to become a standard tool for the programming scientist. This school is targeted at Master or PhD students and Post-docs from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python is assumed. Participants without any prior experience with Python should work through the proposed introductory materials before the course. Date and Location ================= September 1?6, 2013. Zürich, Switzerlandi. Preliminary Program =================== Day 0 (Sun Sept 1) ? Best Programming Practices - Best Practices, Development Methodologies and the Zen of Python - Version control with git - Object-oriented programming & design patterns Day 1 (Mon Sept 2) ? Software Carpentry - Test-driven development, unit testing & quality assurance - Debugging, profiling and benchmarking techniques - Best practices in data visualization - Programming in teams Day 2 (Tue Sept 3) ? Scientific Tools for Python - Advanced NumPy - The Quest for Speed (intro): Interfacing to C with Cython - Advanced Python I: idioms, useful built-in data structures, generators Day 3 (Wed Sept 4) ? The Quest for Speed - Writing parallel applications in Python - Programming project Day 4 (Thu Sept 5) ? Efficient Memory Management - When parallelization does not help: the starving CPUs problem - Advanced Python II: decorators and context managers - Programming project Day 5 (Fri Sept 6) ? Practical Software Development - Programming project - The Pelita Tournament Every evening we will have the tutors' consultation hour : Tutors will answer your questions and give suggestions for your own projects. Applications ============ You can apply on-line at http://python.g-node.org Applications must be submitted before 23:59 CEST, May 1, 2013. Notifications of acceptance will be sent by June 1, 2013. No fee is charged but participants should take care of travel, living, and accommodation expenses. Candidates will be selected on the basis of their profile. Places are limited: acceptance rate is usually around 20%. Prerequisites: You are supposed to know the basics of Python to participate in the lectures. You are encouraged to go through the introductory material available on the website. Faculty ======= - Francesc Alted, Continuum Analytics Inc., USA - Pietro Berkes, Enthought Inc., UK - Valentin Haenel, freelance developer and consultant, Berlin, Germany - Zbigniew J?drzejewski-Szmek, Krasnow Institute, George Mason University, USA - Eilif Muller, Blue Brain Project, École Polytechnique Fédérale de Lausanne, Switzerland - Emanuele Olivetti, NeuroInformatics Laboratory, Fondazione Bruno Kessler and University of Trento, Italy - Rike-Benjamin Schuppner, Technologit GbR, Germany - Bartosz Tele?czuk, Unité de Neurosciences Information et Complexité, CNRS, France - Stéfan van der Walt, Applied Mathematics, Stellenbosch University, South Africa - Bastian Venthur, Berlin Institute of Technology and Bernstein Focus Neurotechnology, Germany - Niko Wilbert, TNG Technology Consulting GmbH, Germany - Tiziano Zito, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany Organized by Nicola Chiapolini and colleagues of the Physik-Institut, University of Zurich, and by Zbigniew J?drzejewski-Szmek and Tiziano Zito for the German Neuroinformatics Node of the INCF. Website: http://python.g-node.org Contact: python-info en g-node.org _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion en scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion From juanlu001 en gmail.com Thu Jan 31 12:12:59 2013 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Thu, 31 Jan 2013 12:12:59 +0100 Subject: [Python-es] =?utf-8?q?Fwd=3A_=5BANN=5D_Summer_School_=22Advanced_?= =?utf-8?q?Scientific_Programming_in_Python=22_in_Z=C3=BCrich=2C_Switzerla?= =?utf-8?q?nd?= In-Reply-To: References: Message-ID: <510A51BB.2090507@gmail.com> On 01/31/2013 12:01 PM, Da?id wrote: > El año pasado estuve yo, y fue bastante interesante. Científicos que > haya por aquí, consideradlo. > > > ---------- Forwarded message ---------- > From: Tiziano Zito > Date: 31 January 2013 11:56 > Subject: [Numpy-discussion] [ANN] Summer School "Advanced Scientific > Programming in Python" in Zürich, Switzerland > To: numpy-discussion en scipy.org > > > Advanced Scientific Programming in Python > ========================================= > a Summer School by the G-Node and the Physik-Institut, University of Zurich > > Scientists spend more and more time writing, maintaining, and > debugging software. While techniques for doing this efficiently have > evolved, only few scientists actually use them. As a result, instead > of doing their research, they spend far too much time writing > deficient code and reinventing the wheel. In this course we will > present a selection of advanced programming techniques, > incorporating theoretical lectures and practical exercises tailored > to the needs of a programming scientist. New skills will be tested > in a real programming project: we will team up to develop an > entertaining scientific computer game. > > We use the Python programming language for the entire course. Python > works as a simple programming language for beginners, but more > importantly, it also works great in scientific simulations and data > analysis. We show how clean language design, ease of extensibility, > and the great wealth of open source libraries for scientific > computing and data visualization are driving Python to become a > standard tool for the programming scientist. > > This school is targeted at Master or PhD students and Post-docs from > all areas of science. Competence in Python or in another language > such as Java, C/C++, MATLAB, or Mathematica is absolutely required. > Basic knowledge of Python is assumed. Participants without any prior > experience with Python should work through the proposed introductory > materials before the course. > > Date and Location > ================= > September 1?6, 2013. Zürich, Switzerlandi. > > Preliminary Program > =================== > Day 0 (Sun Sept 1) ? Best Programming Practices > - Best Practices, Development Methodologies and the Zen of Python > - Version control with git > - Object-oriented programming & design patterns > Day 1 (Mon Sept 2) ? Software Carpentry > - Test-driven development, unit testing & quality assurance > - Debugging, profiling and benchmarking techniques > - Best practices in data visualization > - Programming in teams > Day 2 (Tue Sept 3) ? Scientific Tools for Python > - Advanced NumPy > - The Quest for Speed (intro): Interfacing to C with Cython > - Advanced Python I: idioms, useful built-in data structures, generators > Day 3 (Wed Sept 4) ? The Quest for Speed > - Writing parallel applications in Python > - Programming project > Day 4 (Thu Sept 5) ? Efficient Memory Management > - When parallelization does not help: > the starving CPUs problem > - Advanced Python II: decorators and context managers > - Programming project > Day 5 (Fri Sept 6) ? Practical Software Development > - Programming project > - The Pelita Tournament > > Every evening we will have the tutors' consultation hour : Tutors will > answer your questions and give suggestions for your own projects. > > Applications > ============ > You can apply on-line at http://python.g-node.org > > Applications must be submitted before 23:59 CEST, May 1, 2013. > Notifications of acceptance will be sent by June 1, 2013. > > No fee is charged but participants should take care of travel, > living, and accommodation expenses. Candidates will be selected on > the basis of their profile. Places are limited: acceptance rate is > usually around 20%. Prerequisites: You are supposed to know the > basics of Python to participate in the lectures. You are encouraged > to go through the introductory material available on the website. > > Faculty > ======= > - Francesc Alted, Continuum Analytics Inc., USA > - Pietro Berkes, Enthought Inc., UK > - Valentin Haenel, freelance developer and consultant, Berlin, Germany > - Zbigniew J?drzejewski-Szmek, Krasnow Institute, > George Mason University, USA > - Eilif Muller, Blue Brain Project, École Polytechnique Fédérale de > Lausanne, Switzerland > - Emanuele Olivetti, NeuroInformatics Laboratory, Fondazione Bruno > Kessler and University of Trento, Italy > - Rike-Benjamin Schuppner, Technologit GbR, Germany > - Bartosz Tele?czuk, Unité de Neurosciences Information et Complexité, > CNRS, France > - Stéfan van der Walt, Applied Mathematics, Stellenbosch University, > South Africa > - Bastian Venthur, Berlin Institute of Technology and Bernstein Focus > Neurotechnology, Germany > - Niko Wilbert, TNG Technology Consulting GmbH, Germany > - Tiziano Zito, Institute for Theoretical Biology, Humboldt-Universität > zu Berlin, Germany > > Organized by Nicola Chiapolini and colleagues of the Physik-Institut, > University of Zurich, and by Zbigniew J?drzejewski-Szmek and Tiziano Zito for > the German Neuroinformatics Node of the INCF. > > Website: http://python.g-node.org > Contact: python-info en g-node.org > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion en scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ Lo acabo de leer en NumPy-Discussion y me parece interesantísimo la verdad. E, inexplicablemente, las fechas me vienen bien. Estoy pensándolo. From kikocorreoso en gmail.com Thu Jan 31 12:17:50 2013 From: kikocorreoso en gmail.com (Kiko) Date: Thu, 31 Jan 2013 12:17:50 +0100 Subject: [Python-es] =?iso-8859-1?q?Fwd=3A_=5BANN=5D_Summer_School_=22Adva?= =?iso-8859-1?q?nced_Scientific_Programming_in_Python=22_in_Z=FCric?= =?iso-8859-1?q?h=2C_Switzerland?= In-Reply-To: <510A51BB.2090507@gmail.com> References: <510A51BB.2090507@gmail.com> Message-ID: 2013/1/31 Juan Luis Cano > On 01/31/2013 12:01 PM, Da?id wrote: > >> El año pasado estuve yo, y fue bastante interesante. Científicos que >> haya por aquí, consideradlo. >> > Yo lo eché algún año pero nunca he podido ir. No solo por el curso en sí, el poder estar una semana en un ambiente tan enriquecedor debe ser muy positivo. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From faltet en gmail.com Thu Jan 31 15:08:49 2013 From: faltet en gmail.com (Francesc Alted) Date: Thu, 31 Jan 2013 15:08:49 +0100 Subject: [Python-es] =?utf-8?q?Fwd=3A_=5BANN=5D_Summer_School_=22Advanced_?= =?utf-8?q?Scientific_Programming_in_Python=22_in_Z=C3=BCrich=2C_Switzerla?= =?utf-8?q?nd?= In-Reply-To: References: <510A51BB.2090507@gmail.com> Message-ID: <510A7AF1.8020107@gmail.com> On 1/31/13 12:17 PM, Kiko wrote: > > > 2013/1/31 Juan Luis Cano > > > On 01/31/2013 12:01 PM, Da?id wrote: > > El año pasado estuve yo, y fue bastante interesante. > Científicos que > haya por aquí, consideradlo. > > > Yo lo eché algún año pero nunca he podido ir. > > No solo por el curso en sí, el poder estar una semana en un ambiente > tan enriquecedor debe ser muy positivo. Exacto, el hecho de relacionarse con otra gente con problematicas diferentes pero con el denominador comun de usar Python y su ecosistema suele ser una de las razones que los alumnos valoran mas. Aparte, algo siempre se aprende al final de la semana. Si ademas se gana el campeonato de Pelita, el subidon es considerable (no Ricardo? ;) -- Francesc Alted From ricardo.cardenes en gmail.com Thu Jan 31 15:16:46 2013 From: ricardo.cardenes en gmail.com (=?ISO-8859-1?Q?Ricardo_C=E1rdenes?=) Date: Thu, 31 Jan 2013 14:16:46 +0000 Subject: [Python-es] =?iso-8859-1?q?Fwd=3A_=5BANN=5D_Summer_School_=22Adva?= =?iso-8859-1?q?nced_Scientific_Programming_in_Python=22_in_Z=FCric?= =?iso-8859-1?q?h=2C_Switzerland?= In-Reply-To: <510A7AF1.8020107@gmail.com> References: <510A51BB.2090507@gmail.com> <510A7AF1.8020107@gmail.com> Message-ID: ¿Lo dices por mi? :D Fue la leche :D 2013/1/31 Francesc Alted > On 1/31/13 12:17 PM, Kiko wrote: > >> >> >> 2013/1/31 Juan Luis Cano > >> >> >> >> On 01/31/2013 12:01 PM, Da?id wrote: >> >> El año pasado estuve yo, y fue bastante interesante. >> Científicos que >> haya por aquí, consideradlo. >> >> >> Yo lo eché algún año pero nunca he podido ir. >> >> No solo por el curso en sí, el poder estar una semana en un ambiente tan >> enriquecedor debe ser muy positivo. >> > > Exacto, el hecho de relacionarse con otra gente con problematicas > diferentes pero con el denominador comun de usar Python y su ecosistema > suele ser una de las razones que los alumnos valoran mas. Aparte, algo > siempre se aprende al final de la semana. Si ademas se gana el campeonato > de Pelita, el subidon es considerable (no Ricardo? ;) > > -- > Francesc Alted > > > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: