From carlos.zun en gmail.com Mon May 2 17:09:02 2016 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Mon, 2 May 2016 16:09:02 -0500 Subject: [Python-es] pregunta rapida sobre pdb (python debugger) In-Reply-To: References: Message-ID: 2016-04-28 14:56 GMT-05:00 Jose Caballero : > Hola, > > > ?es posible forzar pdb, en modo interactivo, a pasar linea por linea > tanto para el script principal como alguna de las clases/funciones de > las que se hace "import"? > > Cuando se hace algo tipo: > > $ python -m pdb myscript.py > > el debugger va linea a linea sobre myscript.py > Pero si tengo algo tipo > > from mypackage import myclass > > el debugger no se mete en mypackage. > Es normal. > > Pero me gustaria saber si es posible forzar pdb a entrar en mypackage, > y que siga haciendo un "trace" linea a linea. > Puedes añadir la línea `import pdb; pdb.set_trace()` en el punto donde quieres comenzar a debuggear dentro de mypackage. From jcaballero.hep en gmail.com Mon May 2 17:59:46 2016 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Mon, 2 May 2016 17:59:46 -0400 Subject: [Python-es] pregunta rapida sobre pdb (python debugger) In-Reply-To: References: Message-ID: El día 2 de mayo de 2016, 17:09, Carlos Zuniga escribió: > 2016-04-28 14:56 GMT-05:00 Jose Caballero : >> Hola, >> >> >> ?es posible forzar pdb, en modo interactivo, a pasar linea por linea >> tanto para el script principal como alguna de las clases/funciones de >> las que se hace "import"? >> >> Cuando se hace algo tipo: >> >> $ python -m pdb myscript.py >> >> el debugger va linea a linea sobre myscript.py >> Pero si tengo algo tipo >> >> from mypackage import myclass >> >> el debugger no se mete en mypackage. >> Es normal. >> >> Pero me gustaria saber si es posible forzar pdb a entrar en mypackage, >> y que siga haciendo un "trace" linea a linea. >> > > Puedes añadir la línea `import pdb; pdb.set_trace()` en el punto donde > quieres comenzar a debuggear dentro de mypackage. Sí. Pero luego hay que acordarse de quitarla. Si no, se ejecuta siempre, con o sin debugger :) From dsamanie en fi.uba.ar Tue May 3 11:31:52 2016 From: dsamanie en fi.uba.ar (David Samaniego) Date: Tue, 3 May 2016 12:31:52 -0300 Subject: [Python-es] Insertar registros cada segundo Message-ID: Hola buena tarde, dispongo de un script que realiza un una consulta smnp y la informacion la inserta en una tabla mysql. El tema es que necesito que cada consulta snmp se lo realice cada 1 segundo, ya que tiene que guardar los tiempos para analizarlos porteriormente. Lo que estaba haciendo para probar es lanzar un crontab que ejecute el script, pero el tiempo minino es un minuto, así que no se me ocurre como hacer para que cada insert lo haga en el tiempo que necesito. (Creo que debo hacer un bucle que itere cada 1 segundo hasta 60 y que cuando termine lo vuelva a ejecutar el crontab para que se vuelva a repetir. Alguna sugerencia de como puedo llevar a cabo la idea?? Agradezco cualquier comentario. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From itzcoaltam en joiz.net Tue May 3 11:45:23 2016 From: itzcoaltam en joiz.net (itzcoalt Alvarez) Date: Tue, 3 May 2016 10:45:23 -0500 Subject: [Python-es] Insertar registros cada segundo In-Reply-To: References: Message-ID: <5728C793.4070009@joiz.net> No te queda mejor una rutina que mande a Log el resultado de la consulta y despues una importacion el SQL? Saludos El 03/05/16 a las 10:31, David Samaniego escribió: > Hola buena tarde, dispongo de un script que realiza un una consulta > smnp y la informacion la inserta en una tabla mysql. El tema es que > necesito que cada consulta snmp se lo realice cada 1 segundo, ya que > tiene que guardar los tiempos para analizarlos porteriormente. > Lo que estaba haciendo para probar es lanzar un crontab que ejecute el > script, pero el tiempo minino es un minuto, así que no se me ocurre > como hacer para que cada insert lo haga en el tiempo que necesito. > (Creo que debo hacer un bucle que itere cada 1 segundo hasta 60 y que > cuando termine lo vuelva a ejecutar el crontab para que se vuelva a > repetir. > > Alguna sugerencia de como puedo llevar a cabo la idea?? > > Agradezco cualquier comentario. > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 mauriciobaeza.net Tue May 3 11:51:07 2016 From: listas en mauriciobaeza.net (Mauricio Baeza) Date: Tue, 3 May 2016 10:51:07 -0500 Subject: [Python-es] Insertar registros cada segundo In-Reply-To: References: Message-ID: On 05/03/2016 10:31 AM, David Samaniego wrote: > Hola buena tarde, dispongo de un script que realiza un una consulta > smnp y la informacion la inserta en una tabla mysql. El tema es que > necesito que cada consulta snmp se lo realice cada 1 segundo, ya que > tiene que guardar los tiempos para analizarlos porteriormente. > Lo que estaba haciendo para probar es lanzar un crontab que ejecute el > script, pero el tiempo minino es un minuto, así que no se me ocurre como > hacer para que cada insert lo haga en el tiempo que necesito. (Creo que > debo hacer un bucle que itere cada 1 segundo hasta 60 y que cuando > termine lo vuelva a ejecutar el crontab para que se vuelva a repetir. > > Alguna sugerencia de como puedo llevar a cabo la idea?? > > Agradezco cualquier comentario. > > > Prueba: https://github.com/dbader/schedule Según veo tiene soporte para cada segundo Saludos -- __________________________________________________ Todo lo que no podemos dar nos posee... André Gide Apoya nuestros proyectos: http://universolibre.org/hacemos/ From jdpd en gmx.es Tue May 3 11:52:25 2016 From: jdpd en gmx.es (Jaime Perea) Date: Tue, 03 May 2016 17:52:25 +0200 Subject: [Python-es] Insertar registros cada segundo In-Reply-To: References: Message-ID: <4020294.DzUUtAUzTE@t450s> El Martes, 3 de mayo de 2016 12:31:52 David Samaniego escribió: > Hola buena tarde, dispongo de un script que realiza un una consulta smnp y > la informacion la inserta en una tabla mysql. El tema es que necesito que > cada consulta snmp se lo realice cada 1 segundo, ya que tiene que guardar > los tiempos para analizarlos porteriormente. > Lo que estaba haciendo para probar es lanzar un crontab que ejecute el > script, pero el tiempo minino es un minuto, así que no se me ocurre como > hacer para que cada insert lo haga en el tiempo que necesito. (Creo que > debo hacer un bucle que itere cada 1 segundo hasta 60 y que cuando termine > lo vuelva a ejecutar el crontab para que se vuelva a repetir. > > Alguna sugerencia de como puedo llevar a cabo la idea?? > > Agradezco cualquier comentario. ¿time.sleep(secs) podría ser? https://docs.python.org/2/library/time.html[1] -- Jaime D. Perea Duarte. Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. -------- [1] https://docs.python.org/2/library/time.html ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Tue May 3 11:52:40 2016 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Tue, 3 May 2016 17:52:40 +0200 Subject: [Python-es] Insertar registros cada segundo In-Reply-To: References: Message-ID: 2016-05-03 17:31 GMT+02:00 David Samaniego : > Alguna sugerencia de como puedo llevar a cabo la idea?? t0 = time.time() # consulta smnp elapsed = time.time() - t0 if elapsed < 1: time.sleep(1 - elapsed) Sería bueno guardar el tiempo, porque la red puede caerse temporalmente, o el servidor tardar más de un segundo en responder. From sanreikaj.foros en gmail.com Tue May 3 12:19:32 2016 From: sanreikaj.foros en gmail.com (Alvaro Manrique) Date: Tue, 3 May 2016 11:49:32 -0430 Subject: [Python-es] Insertar registros cada segundo In-Reply-To: References: Message-ID: Yo creo que sólo con la función Sleep basta para lograr el cometido. -------------------------------------------------------------- Alvaro Manrique Programador Freelance Venezuela Tel. Whatsapp: 0424-1760942 Skype: alvaro_manrique Twitter: @AJ_Manrique El may. 3, 2016 11:54 AM, "Da?id" escribió: > 2016-05-03 17:31 GMT+02:00 David Samaniego : > > Alguna sugerencia de como puedo llevar a cabo la idea?? > > t0 = time.time() > # consulta smnp > elapsed = time.time() - t0 > if elapsed < 1: > time.sleep(1 - elapsed) > > Sería bueno guardar el tiempo, porque la red puede caerse > temporalmente, o el servidor tardar más de un segundo en responder. > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 Tue May 3 15:10:37 2016 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 03 May 2016 19:10:37 +0000 Subject: [Python-es] Insertar registros cada segundo In-Reply-To: References: Message-ID: El mar., 3 may. 2016 a las 17:41, David Samaniego () escribió: > Hola buena tarde, dispongo de un script que realiza un una consulta smnp > y la informacion la inserta en una tabla mysql. El tema es que necesito que > cada consulta snmp se lo realice cada 1 segundo, ya que tiene que guardar > los tiempos para analizarlos porteriormente. > Lo que estaba haciendo para probar es lanzar un crontab que ejecute el > script, pero el tiempo minino es un minuto, así que no se me ocurre como > hacer para que cada insert lo haga en el tiempo que necesito. (Creo que > debo hacer un bucle que itere cada 1 segundo hasta 60 y que cuando termine > lo vuelva a ejecutar el crontab para que se vuelva a repetir. > > Alguna sugerencia de como puedo llevar a cabo la idea?? > > Agradezco cualquier comentario. > Para darte una respuesta adecuada, se necesitaría saber qué versión de python estás usando y en qué plataforma usas. La solución "clásica" de usar time.sleep no es la recomendada en aplicaciones multihilo. Es mejor usar soluciones más "responsibles" como event.wait (suponiendo que estés usando python3). Mi consejo en que uses threading.Timer con python2; y el módulo sched (valores por defecto) con python3. (En la documentación de sched para python2 te explica cómo usar Timer). ....y si puedes elegir, python3. Por otra parte, supongo que no tienes probado lo de insertar datos cada segundo en una tabla mysql. Si estás pensando en lanzar varios scripts para traerte datos de distintos dispositivos, el bloqueo/desbloqueo de registros o tabla para insertar datos podría ser un problema. Yo no juntaría en el mismo script la extracción de datos snmp con la inserción de datos en la base de datos. -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From tassarionvesryn en gmail.com Wed May 4 03:47:14 2016 From: tassarionvesryn en gmail.com (Tassarion Vesryn) Date: Wed, 4 May 2016 09:47:14 +0200 Subject: [Python-es] Donde publicar esta noticia Message-ID: Hola, llevo unos cuantos dias suscrito a la lista y envio este mensaje porque "esta relacionado" (notese las comillas) con Python. Mi idea original era enviarla a pygame, por ser programacion de juegos con python, pero me ha parecido que eso dejaria fuera a gente interesada. El caso es que estoy haciendo un videocurso gratuito de creacion de graficos 3D de calidad foto realista. He publicado ya unos cuantos videos, pero aun me quedan muchos por hacer. y lo que buscaba era que la gente me diera su opinion (opiniones constructivas). Como he dicho hay solamente unos cuantos videos, pero ya se pueden hacer algunas cosas: creacion de escenas, creacion de objetos (esferas, cajas, cilindros, fuentes de luz), etc. Teniendo en cuenta el contenido del curso en principio parece orientado a la programacion de videojuegos, de ahi la idea d pygame, pero tambien se puede usar para obtener imagenes que se puedan utilizar en cualquier otra cosa. Omito el enlace al curso para que no parezca spam. ¿Esta lista es un buen sitio o donde me recomendais que envie la noticia?. Gracias. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Wed May 4 09:20:14 2016 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 4 May 2016 15:20:14 +0200 Subject: [Python-es] Donde publicar esta noticia In-Reply-To: References: Message-ID: El 4 de mayo de 2016, 9:47, Tassarion Vesryn escribió: > Hola, > > llevo unos cuantos dias suscrito a la lista y envio este mensaje porque > "esta relacionado" (notese las comillas) con Python. > > Mi idea original era enviarla a pygame, por ser programacion de juegos con > python, pero me ha parecido que eso dejaria fuera a gente interesada. > > El caso es que estoy haciendo un videocurso gratuito de creacion de > graficos 3D de calidad foto realista. He publicado ya unos cuantos videos, > pero aun me quedan muchos por hacer. y lo que buscaba era que la gente me > diera su opinion (opiniones constructivas). > > Como he dicho hay solamente unos cuantos videos, pero ya se pueden hacer > algunas cosas: creacion de escenas, creacion de objetos (esferas, cajas, > cilindros, fuentes de luz), etc. > > Teniendo en cuenta el contenido del curso en principio parece orientado a > la programacion de videojuegos, de ahi la idea d pygame, pero tambien se > puede usar para obtener imagenes que se puedan utilizar en cualquier otra > cosa. > > Omito el enlace al curso para que no parezca spam. > > ¿Esta lista es un buen sitio o donde me recomendais que envie la noticia? > Hola. Si el curso está relacionado con PyGame esta lista es adecuada. Si el curso es gratuito y de libre acceso no veo inconveniente en meter el enlace. Saludos. > > Gracias. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 tassarionvesryn en gmail.com Wed May 4 13:56:22 2016 From: tassarionvesryn en gmail.com (Tassarion Vesryn) Date: Wed, 4 May 2016 19:56:22 +0200 Subject: [Python-es] Donde publicar esta noticia In-Reply-To: References: Message-ID: Hola, el enlace al curso es este https://www.tutellus.com/tecnologia/animacion-y-3d/curso-de-pov-ray-7629 efectivamente, esta relacionado con pygame porque se pueden crear los graficos que se necesiten. El curso es gratuito y deberia poder accederse a todo (video y archivos del curso). Dado que es el primer curso que hago entiendo que hay cosas que son mejorables, pero creo que para ser el primero esta quedando mas o menos bien. Un saludo 2016-05-04 15:20 GMT+02:00 Kiko : > > > El 4 de mayo de 2016, 9:47, Tassarion Vesryn > escribió: > >> Hola, >> >> llevo unos cuantos dias suscrito a la lista y envio este mensaje porque >> "esta relacionado" (notese las comillas) con Python. >> >> Mi idea original era enviarla a pygame, por ser programacion de juegos >> con python, pero me ha parecido que eso dejaria fuera a gente interesada. >> >> El caso es que estoy haciendo un videocurso gratuito de creacion de >> graficos 3D de calidad foto realista. He publicado ya unos cuantos videos, >> pero aun me quedan muchos por hacer. y lo que buscaba era que la gente me >> diera su opinion (opiniones constructivas). >> >> Como he dicho hay solamente unos cuantos videos, pero ya se pueden hacer >> algunas cosas: creacion de escenas, creacion de objetos (esferas, cajas, >> cilindros, fuentes de luz), etc. >> >> Teniendo en cuenta el contenido del curso en principio parece orientado a >> la programacion de videojuegos, de ahi la idea d pygame, pero tambien se >> puede usar para obtener imagenes que se puedan utilizar en cualquier otra >> cosa. >> >> Omito el enlace al curso para que no parezca spam. >> >> ¿Esta lista es un buen sitio o donde me recomendais que envie la noticia? >> > > Hola. > > Si el curso está relacionado con PyGame esta lista es adecuada. > Si el curso es gratuito y de libre acceso no veo inconveniente en meter el > enlace. > > Saludos. > > >> >> Gracias. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 dsamanie en fi.uba.ar Wed May 4 19:42:03 2016 From: dsamanie en fi.uba.ar (David Samaniego) Date: Wed, 4 May 2016 20:42:03 -0300 Subject: [Python-es] Insertar registros cada segundo In-Reply-To: References: Message-ID: La version de python que uso es 2.7 y por ventaja es un script puntual que lee solamente dos variables snmp en un solo equipo, asi que se descarta el tema de multihilos, Les comparto la parte del codigo que tengo realizado. No se si sea lo más optimo pero como está funciona. En el schedule.every si le pongo 1 me guarda los registros cada 2 segundos y al colocarlo 0.5 efectivamente inserta cada 1 segundo como lo necesito. Aqui va lo que tengo avanzado hasta ahora. def interface_counterT1(): try: indice = "XXX" fecha = time.strftime('%Y/%m/%d') tiempo = time.strftime('%H:%M:%S') community="XXXXXX" interface = "XX.XX.XX.XX" cmdGen = cmdgen.CommandGenerator() errorIndication, errorStatus, errorIndex, varBindTableIn = cmdGen.getCmd( cmdgen.CommunityData(community), cmdgen.UdpTransportTarget((interface, 161)), '1.3.6.1.2.1.2.2.1.10.'+indice ) cmdGen = cmdgen.CommandGenerator() errorIndication, errorStatus, errorIndex, varBindTableOut = cmdGen.getCmd( cmdgen.CommunityData(community), cmdgen.UdpTransportTarget((interface, 161)), '1.3.6.1.2.1.2.2.1.16.'+indice ) cadena_conexion = ['localhost', 'XXXX', 'XXXX', 'XXXX'] conexion_db = db_herramientas.connect(*cadena_conexion) cursor_db = conexion_db.cursor() for name, val in varBindTableIn: nombre = name.prettyPrint() counterIN = val.prettyPrint() sentido = "INPUT" insertar = """INSERT INTO TABLAX (`id_interface`, `fecha`, `hora` , `sentido` , `counter`) VALUES ('%s', '%s','%s','%s','%s');""" %(int(indice), fecha, tiempo, sentido, counterIN ) cursor_db.execute(insertar) for name, val in varBindTableOut: nombre = name.prettyPrint() counterOUT = val.prettyPrint() sentido = "OUTPUT" insertar = """INSERT INTO TABLAX (`id_interface`, `fecha`, `hora` , `sentido` , `counter`) VALUES ('%s', '%s','%s','%s','%s');""" %( int(indice), fecha, tiempo, sentido, counterOUT ) cursor_db.execute(insertar) conexion_db.commit() cursor_db.close() conexion_db.close() except: print "Error" schedule.every(0.5).seconds.do(interface_counterT1) while True: schedule.run_pending() # time.sleep(1) 2016-05-03 16:10 GMT-03:00 Chema Cortes : > El mar., 3 may. 2016 a las 17:41, David Samaniego () > escribió: > >> Hola buena tarde, dispongo de un script que realiza un una consulta smnp >> y la informacion la inserta en una tabla mysql. El tema es que necesito que >> cada consulta snmp se lo realice cada 1 segundo, ya que tiene que guardar >> los tiempos para analizarlos porteriormente. >> Lo que estaba haciendo para probar es lanzar un crontab que ejecute el >> script, pero el tiempo minino es un minuto, así que no se me ocurre como >> hacer para que cada insert lo haga en el tiempo que necesito. (Creo que >> debo hacer un bucle que itere cada 1 segundo hasta 60 y que cuando termine >> lo vuelva a ejecutar el crontab para que se vuelva a repetir. >> >> Alguna sugerencia de como puedo llevar a cabo la idea?? >> >> Agradezco cualquier comentario. >> > > Para darte una respuesta adecuada, se necesitaría saber qué versión de > python estás usando y en qué plataforma usas. > > La solución "clásica" de usar time.sleep no es la recomendada en > aplicaciones multihilo. Es mejor usar soluciones más "responsibles" como > event.wait (suponiendo que estés usando python3). > > Mi consejo en que uses threading.Timer con python2; y el módulo sched > (valores por defecto) con python3. (En la documentación de sched para > python2 te explica cómo usar Timer). > > ....y si puedes elegir, python3. > > Por otra parte, supongo que no tienes probado lo de insertar datos cada > segundo en una tabla mysql. Si estás pensando en lanzar varios scripts para > traerte datos de distintos dispositivos, el bloqueo/desbloqueo de registros > o tabla para insertar datos podría ser un problema. Yo no juntaría en el > mismo script la extracción de datos snmp con la inserción de datos en la > base de datos. > > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 tres.14159 en gmail.com Thu May 5 08:50:36 2016 From: tres.14159 en gmail.com (Miguel de Dios Matias) Date: Thu, 5 May 2016 14:50:36 +0200 Subject: [Python-es] Donde publicar esta noticia In-Reply-To: References: Message-ID: Para 2D pygame aunque es una librería muy básica, pero si tienes que hacer algo en 3D mejor Panda3D (https://es.wikipedia.org/wiki/Panda3D). Saludos. El día 4 de mayo de 2016, 19:56, Tassarion Vesryn escribió: > Hola, > > el enlace al curso es este > > https://www.tutellus.com/tecnologia/animacion-y-3d/curso-de-pov-ray-7629 > > efectivamente, esta relacionado con pygame porque se pueden crear los > graficos que se necesiten. > > El curso es gratuito y deberia poder accederse a todo (video y archivos del > curso). > > Dado que es el primer curso que hago entiendo que hay cosas que son > mejorables, pero creo que para ser el primero esta quedando mas o menos > bien. > > Un saludo > > > > > > 2016-05-04 15:20 GMT+02:00 Kiko : >> >> >> >> El 4 de mayo de 2016, 9:47, Tassarion Vesryn >> escribió: >>> >>> Hola, >>> >>> llevo unos cuantos dias suscrito a la lista y envio este mensaje porque >>> "esta relacionado" (notese las comillas) con Python. >>> >>> Mi idea original era enviarla a pygame, por ser programacion de juegos >>> con python, pero me ha parecido que eso dejaria fuera a gente interesada. >>> >>> El caso es que estoy haciendo un videocurso gratuito de creacion de >>> graficos 3D de calidad foto realista. He publicado ya unos cuantos videos, >>> pero aun me quedan muchos por hacer. y lo que buscaba era que la gente me >>> diera su opinion (opiniones constructivas). >>> >>> Como he dicho hay solamente unos cuantos videos, pero ya se pueden hacer >>> algunas cosas: creacion de escenas, creacion de objetos (esferas, cajas, >>> cilindros, fuentes de luz), etc. >>> >>> Teniendo en cuenta el contenido del curso en principio parece orientado a >>> la programacion de videojuegos, de ahi la idea d pygame, pero tambien se >>> puede usar para obtener imagenes que se puedan utilizar en cualquier otra >>> cosa. >>> >>> Omito el enlace al curso para que no parezca spam. >>> >>> ¿Esta lista es un buen sitio o donde me recomendais que envie la noticia? >> >> >> Hola. >> >> Si el curso está relacionado con PyGame esta lista es adecuada. >> Si el curso es gratuito y de libre acceso no veo inconveniente en meter el >> enlace. >> >> Saludos. >> >>> >>> >>> Gracias. >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > From tassarionvesryn en gmail.com Thu May 5 12:16:50 2016 From: tassarionvesryn en gmail.com (Tassarion Vesryn) Date: Thu, 5 May 2016 18:16:50 +0200 Subject: [Python-es] Donde publicar esta noticia In-Reply-To: References: Message-ID: Lo conozco. Lo que estoy haciendo usa un sistema diferente al de Panda3D. Cada herramienta tiene sus caracteristicas, los resultados dependen de varias cosas (software usado, hardware usado, la habilidad de la persona, etc) y yo creo que lo mejor es conocer varias que sean diferentes entre si. 2016-05-05 14:50 GMT+02:00 Miguel de Dios Matias : > Para 2D pygame aunque es una librería muy básica, pero si tienes que > hacer algo en 3D mejor Panda3D > (https://es.wikipedia.org/wiki/Panda3D). > > Saludos. > > El día 4 de mayo de 2016, 19:56, Tassarion Vesryn > escribió: > > Hola, > > > > el enlace al curso es este > > > > https://www.tutellus.com/tecnologia/animacion-y-3d/curso-de-pov-ray-7629 > > > > efectivamente, esta relacionado con pygame porque se pueden crear los > > graficos que se necesiten. > > > > El curso es gratuito y deberia poder accederse a todo (video y archivos > del > > curso). > > > > Dado que es el primer curso que hago entiendo que hay cosas que son > > mejorables, pero creo que para ser el primero esta quedando mas o menos > > bien. > > > > Un saludo > > > > > > > > > > > > 2016-05-04 15:20 GMT+02:00 Kiko : > >> > >> > >> > >> El 4 de mayo de 2016, 9:47, Tassarion Vesryn > > >> escribió: > >>> > >>> Hola, > >>> > >>> llevo unos cuantos dias suscrito a la lista y envio este mensaje porque > >>> "esta relacionado" (notese las comillas) con Python. > >>> > >>> Mi idea original era enviarla a pygame, por ser programacion de juegos > >>> con python, pero me ha parecido que eso dejaria fuera a gente > interesada. > >>> > >>> El caso es que estoy haciendo un videocurso gratuito de creacion de > >>> graficos 3D de calidad foto realista. He publicado ya unos cuantos > videos, > >>> pero aun me quedan muchos por hacer. y lo que buscaba era que la gente > me > >>> diera su opinion (opiniones constructivas). > >>> > >>> Como he dicho hay solamente unos cuantos videos, pero ya se pueden > hacer > >>> algunas cosas: creacion de escenas, creacion de objetos (esferas, > cajas, > >>> cilindros, fuentes de luz), etc. > >>> > >>> Teniendo en cuenta el contenido del curso en principio parece > orientado a > >>> la programacion de videojuegos, de ahi la idea d pygame, pero tambien > se > >>> puede usar para obtener imagenes que se puedan utilizar en cualquier > otra > >>> cosa. > >>> > >>> Omito el enlace al curso para que no parezca spam. > >>> > >>> ¿Esta lista es un buen sitio o donde me recomendais que envie la > noticia? > >> > >> > >> Hola. > >> > >> Si el curso está relacionado con PyGame esta lista es adecuada. > >> Si el curso es gratuito y de libre acceso no veo inconveniente en meter > el > >> enlace. > >> > >> Saludos. > >> > >>> > >>> > >>> Gracias. > >>> > >>> _______________________________________________ > >>> Python-es mailing list > >>> Python-es en python.org > >>> https://mail.python.org/mailman/listinfo/python-es > >>> FAQ: http://python-es-faq.wikidot.com/ > >>> > >> > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > >> > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 Fri May 6 13:12:18 2016 From: kikocorreoso en gmail.com (Kiko) Date: Fri, 6 May 2016 19:12:18 +0200 Subject: [Python-es] Ofertas de trabajo en kernel analytics para Madrid y Barcelona Message-ID: Hola a todos. Hace unos días llegó este correo (ver abajo) a la lista del meetup de python madrid. Os la dejo por si es de interés para alguien. Saludos. ---------------------------------------- http://www.kernel-analytics.com/en/careers Compañeros pythonistas, Kernel Analytics tiene algunas ofertas que pueden ser de vuestro interés: ------------------------ Kernel Analytics is a consultancy firm specialized in applying advanced analytics to marketing and operations. We turn data into actionable detailed business recommendations that automate and optimize decision-making. Our consultants apply a mix of analytics, business knowledge and technology to define and deliver the best solution in terms of precision and performance. Our cross-industry experience has created a wide portfolio of services and solutions to complex business problems. We hire and retain the best talent in data science, as it is the key source for continuous innovation. Last but not least, we are passionate about our work and are happy to run the extra mile to deliver the best results for our clients. We're looking for several positions: - Team Lead : (Up to 45k) - Data Engineer : (25 - 35k) - Junior Analyst : (23 - 30k) - Senior Analyst (30 - 45k) ------------------------ Si estáis interesados en alguna de las posiciones anteriores podéis aplicar directamente en la página correspondiente. Un saludo! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ovasquezcyt en gmail.com Mon May 9 15:20:12 2016 From: ovasquezcyt en gmail.com (oduber e. vasquez b.) Date: Mon, 9 May 2016 15:20:12 -0400 Subject: [Python-es] guardar imagen con sqlalchemy Message-ID: Hola. estoy trabajando con sqlalchemy, gtk y glade, no puedo conseguir guardar una imagen en un campo llamado photo desde python ejemplo: #!/usr/bin/env python # -*- coding: utf-8 -*- """ Archivo: login.py J.M.M. 15/03/2011 Descripci?n: carga login.glade - Ventana de ingreso al sistema """ import os import sys import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk as gtk class GtkImagen(object): def __init__(self): objsE = gtk.Builder() try: objsE.add_from_file('vistas/pantallaimagen.glade') except: print("Archivo no Existe") sys.exit() # Se recuperan los widget a usar (no son necesarios todos) self.winEdit = objsE.get_object('winImagen') self.image = objsE.get_object('imgMostrar') self.status = 'A' #formato = "%d/%m/%Y" #self.fecha = calendario.toStr(self.calendario.calendario.get_date()) #fecha = datetime.strptime(fecha, formato) objsE.connect_signals(self) self.winEdit.show() # Se asocian las senales del archivo glade a metodos de la clase def on_btnImagen_clicked(self, widget): dialog = gtk.FileChooserDialog ("Open Image", widget.get_toplevel(), gtk.FileChooserAction.OPEN) dialog.add_button (gtk.STOCK_CANCEL, 0) dialog.add_button (gtk.STOCK_OK, 1) dialog.set_default_response(1) filefilter = gtk.FileFilter() filefilter.add_pixbuf_formats () dialog.set_filter(filefilter) if dialog.run() == 1: self.image.set_from_file(dialog.get_filename()) dialog.destroy() def on_btnCapturar_clicked(self, widget): #pixbuf = self.image.get_pixbuf() #pixbuf = self.image.get_icon_name() pixbuf = self.image.get_stock() print(pixbuf) def on_winImagen_destroy(self, widget): gtk.main_quit() if __name__ == '__main__': app = GtkImagen() gtk.main() QUE DATO DEBO TENER EN LA VARIABLE "pixbuf" para almacenarla en la tabla con sqlalchemy -- ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From malvarez99 en gmail.com Mon May 9 15:29:26 2016 From: malvarez99 en gmail.com (Manuel) Date: Mon, 9 May 2016 21:29:26 +0200 Subject: [Python-es] =?utf-8?q?_Renombrar_subt=C3=ADtulos_seg=C3=BAn_archi?= =?utf-8?q?vos_de_video=2E?= Message-ID: Hola amigos. Llevo desde hace un tiempo queriendo un script que al chequear un directorio y ver que hay archivos de video y de subtítulos, si los 4 o 5 primeros caracteres coinciden entre ellos, me renombre los subtítulos acorde al nombre del video. Videos: House.Of.Cards.4x01.mp4 Elementary S04E16 HDTV x264-LOL EZTV.mkv Subtítulos: Elementary 4x16 - Hounded (Español).srt House of Cards (2013) 4x01 - Chapter 40 (Español).srt El código que os adjunto, me renombra la primera coincidencia que encuentra, pero se para ahí y no continua. Os agradecería cualquier comentario y/o ayuda. Un saludo. Manuel. #!/usr/local/bin/python3.5 import os import os.path archivos = os.listdir(os.getcwd()) lista_videos = [] lista_subtitulos = [] for archivo in archivos: if archivo.endswith('mkv') or archivo.endswith('mp4'): lista_videos.append(archivo) elif archivo.endswith('srt'): lista_subtitulos.append(archivo) for video in lista_videos: for subtitulo in lista_subtitulos: for i in range(0,len(lista_videos)): if subtitulo[i][0:4] == video[i][0:4]: subtitulo_final = video[0:-4] + '.srt' os.rename(subtitulo, subtitulo_final) ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Mon May 9 15:44:51 2016 From: ricardo.cardenes en gmail.com (=?UTF-8?Q?Ricardo_C=C3=A1rdenes?=) Date: Mon, 9 May 2016 09:44:51 -1000 Subject: [Python-es] =?utf-8?q?Renombrar_subt=C3=ADtulos_seg=C3=BAn_archi?= =?utf-8?q?vos_de_video=2E?= In-Reply-To: References: Message-ID: No has comentado cómo para, pero sospecho que algún error saltará por algún lado. El bucle que tienes montado es un poco caótico: 2016-05-09 9:29 GMT-10:00 Manuel : > for video in lista_videos: > > for subtitulo in lista_subtitulos: > > for i in range(0,len(lista_videos)): > > > > if subtitulo[i][0:4] == video[i][0:4]: > > subtitulo_final = video[0:-4] + '.srt' > > os.rename(subtitulo, subtitulo_final) > > > > Ahí estás iterando una vez por cada vídeo. Por cada una de esas iteraciones, estás recorriendo toda la lista de subtítulos y luego tienes un tercer bucle dentro (!!) que recorre los índices de la lista de vídeos... y los aplica como índice al *NOMBRE* de los subtítulos y los vídeos. Como digo, un tanto caótico. En su lugar podrías hacer: for video in lista_videos: for i in range(len(lista_subtitulos): subtitulo = lista_subtitulos[i] if subtitulo[:4] == video[:4]: subtitulo_final = video[0:-4] + '.srt' os.rename(subtitulo, subtitulo_final) del lista_subtitulos[i] break Observa que pongo un 'break' si se renombra un subtítulo. Esto es porque asumo que no habrá dos subtítulos que valgan al mismo vídeo, así que paramos la búsqueda ahí, para ahorrar ciclos en el bucle (si los hubiera, el segundo subtitulo *machacaría al primero*, ya que dos ficheros no pueden tener el mismo nombre...) También: si hemos sustituido un subtitulo, lo elimino de la lista, para no tener que usarlo en comprobaciones futuras (que no iban a servir para nada). ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lasizoillo en gmail.com Mon May 9 15:46:42 2016 From: lasizoillo en gmail.com (lasizoillo) Date: Mon, 9 May 2016 21:46:42 +0200 Subject: [Python-es] =?utf-8?q?Renombrar_subt=C3=ADtulos_seg=C3=BAn_archi?= =?utf-8?q?vos_de_video=2E?= In-Reply-To: References: Message-ID: El 9 de mayo de 2016, 21:29, Manuel escribió: > Hola amigos. > > Llevo desde hace un tiempo queriendo un script que al chequear un > directorio y ver que hay archivos de video y de subtítulos, > si los 4 o 5 primeros caracteres coinciden entre ellos, me renombre los > subtítulos acorde al nombre del video. > > Hay librerias con algoritmos mejores para calcular como de parecidas son dos cadenas. Por ejemplo: https://pypi.python.org/pypi/Distance/0.1.3 https://pypi.python.org/pypi/NearDuplicatesDetection/0.2.0 Si no te valen las librerías, puedes tirar de los conceptos de los que hablan para investigar más sobre el tema. Otro enfoque de cosas parecidas a lo que necesitas es tener conocimiento del dominio del problema. Basicamente tirar de thetvdb o imdb para tratar de cuadrar a qué serie se refieren: https://pypi.python.org/pypi/series-renamer/1.0.0 A partir de estas ideas y jugando un poco podrías inventarte tu propio algoritmo. Por ejemplo, así sin pensarlo mucho: - Extraes tokens de los nombres partiendo por simbolos de puntuación y espacios - Generas un par de vectores donde cada dimensión es un token y el valor las apariciones en cada fichero - Calculas la distancia entre ambos vectores y según un threshold lo consideras igual o diferente. Mucho ánimo, que la cosa tiene para aprender muchas cosillas y divertirse. Pero ten cuidado no te apasiones mucho que no tendrás tiempo para ver series ;-) Un saludo, Javi > Videos: > House.Of.Cards.4x01.mp4 > Elementary S04E16 HDTV x264-LOL EZTV.mkv > > Subtítulos: > Elementary 4x16 - Hounded (Español).srt > House of Cards (2013) 4x01 - Chapter 40 (Español).srt > > El código que os adjunto, me renombra la primera coincidencia que > encuentra, pero se para ahí y no continua. > Os agradecería cualquier comentario y/o ayuda. > > Un saludo. > Manuel. > > > #!/usr/local/bin/python3.5 > > > > import os > > import os.path > > > > archivos = os.listdir(os.getcwd()) > > lista_videos = [] > > lista_subtitulos = [] > > > > for archivo in archivos: > > if archivo.endswith('mkv') or archivo.endswith('mp4'): > > lista_videos.append(archivo) > > elif archivo.endswith('srt'): > > lista_subtitulos.append(archivo) > > > > for video in lista_videos: > > for subtitulo in lista_subtitulos: > > for i in range(0,len(lista_videos)): > > > > if subtitulo[i][0:4] == video[i][0:4]: > > subtitulo_final = video[0:-4] + '.srt' > > os.rename(subtitulo, subtitulo_final) > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 malvarez99 en gmail.com Tue May 10 13:37:50 2016 From: malvarez99 en gmail.com (Manuel) Date: Tue, 10 May 2016 19:37:50 +0200 Subject: [Python-es] =?utf-8?q?Renombrar_subt=C3=ADtulos_seg=C3=BAn_archi?= =?utf-8?q?vos_de_video=2E?= In-Reply-To: References: Message-ID: <8DAFF588-9B30-489B-943E-79A8EFF7854E@gmail.com> Muchas gracias, Ricardo. Con tus modificaciones y consejos, funciona perfectamente. Lo he ampliado un poco y ahora también me mueve los archivos renombrados a una carpeta. Referente al triple bucle for, sé que era una idea horrible.(jejejeje) Nuevamente, gracias por tu ayuda. > El 9 may 2016, a las 21:44, Ricardo Cárdenes escribió: > > No has comentado cómo para, pero sospecho que algún error saltará por algún lado. El bucle que tienes montado es un poco caótico: > > 2016-05-09 9:29 GMT-10:00 Manuel >: > for video in lista_videos: > for subtitulo in lista_subtitulos: > for i in range(0,len(lista_videos)): > > if subtitulo[i][0:4] == video[i][0:4]: > subtitulo_final = video[0:-4] + '.srt' > os.rename(subtitulo, subtitulo_final) > > > > Ahí estás iterando una vez por cada vídeo. Por cada una de esas iteraciones, estás recorriendo toda la lista de subtítulos y luego tienes un tercer bucle dentro (!!) que recorre los índices de la lista de vídeos... y los aplica como índice al *NOMBRE* de los subtítulos y los vídeos. Como digo, un tanto caótico. En su lugar podrías hacer: > > for video in lista_videos: > for i in range(len(lista_subtitulos): > subtitulo = lista_subtitulos[i] > if subtitulo[:4] == video[:4]: > subtitulo_final = video[0:-4] + '.srt' > os.rename(subtitulo, subtitulo_final) > del lista_subtitulos[i] > break > > Observa que pongo un 'break' si se renombra un subtítulo. Esto es porque asumo que no habrá dos subtítulos que valgan al mismo vídeo, así que paramos la búsqueda ahí, para ahorrar ciclos en el bucle (si los hubiera, el segundo subtitulo *machacaría al primero*, ya que dos ficheros no pueden tener el mismo nombre...) > > También: si hemos sustituido un subtitulo, lo elimino de la lista, para no tener que usarlo en comprobaciones futuras (que no iban a servir para nada). > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 leonardocaballero en gmail.com Tue May 10 13:47:20 2016 From: leonardocaballero en gmail.com (Leonardo Caballero) Date: Tue, 10 May 2016 13:17:20 -0430 Subject: [Python-es] Han publicado el nuevo sitio de Plone.org Message-ID: Hola Plonistas Les quería comunicar que después de un tiempo y cariño invertido en un trabajo en conjunto con conjunto de varios desarrolladores de la comunidad de Plone realizado en varios sprints dirigido de la mano de Victor Fernandez de Alba aka sneridagh ayer fue lanzado el nuevo sitio de Plone, presentando nuevas características y funcionalidades como: - Basado en Plone 5. - Simplificado y full estilizado/tematizado con las actuales tecnologías Front-end. - Perfiles de usuarios del sitio novedosos, integrado con Github para realizar análisis de contribuciones, ejemplo https://plone.org/profile/macagua - Actualización de contenidos del sitio Web. Para contribuciones o reportes de errores, por favor, no olvide registrar su incidencia en el siguiente enlace: https://github.com/plone/ploneorg.core/issues/new Para estudio de como realizaron el sitio o contribuciones al mismo, por favor, no olvide consultar los paquetes utilizados en los siguientes enlaces: https://github.com/plone?utf8=%E2%9C%93&query=ploneorg https://github.com/plone?utf8=%E2%9C%93&query=plone-org Así que Plonitas, consulte y disfrute nuestros sitio Web https://plone.org/ P.D.: por favor, actualicen sus perfil de usuario y reporten errores de documentación no disponible en el nuevo sitio Web, yo ya tengo varios enlaces preparados para reportar ;-) -- Atentamente Ing. Leonardo J. Caballero G. Linux Counter ID = https://linuxcounter.net/user/369081.html ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alexsavio en gmail.com Tue May 10 14:48:25 2016 From: alexsavio en gmail.com (alexsavio en gmail.com) Date: Tue, 10 May 2016 18:48:25 +0000 Subject: [Python-es] =?utf-8?q?Renombrar_subt=C3=ADtulos_seg=C3=BAn_archi?= =?utf-8?q?vos_de_video=2E?= In-Reply-To: <8DAFF588-9B30-489B-943E-79A8EFF7854E@gmail.com> References: <8DAFF588-9B30-489B-943E-79A8EFF7854E@gmail.com> Message-ID: También puedes probar subliminal https://github.com/Diaoul/subliminal On Tue, 10 May 2016 19:39 Manuel, wrote: > Muchas gracias, Ricardo. > > Con tus modificaciones y consejos, funciona perfectamente. Lo he ampliado > un poco y ahora > también me mueve los archivos renombrados a una carpeta. > Referente al triple bucle for, sé que era una idea horrible.(jejejeje) > > Nuevamente, gracias por tu ayuda. > > > El 9 may 2016, a las 21:44, Ricardo Cárdenes > escribió: > > No has comentado cómo para, pero sospecho que algún error saltará por > algún lado. El bucle que tienes montado es un poco caótico: > > 2016-05-09 9:29 GMT-10:00 Manuel : > >> for video in lista_videos: >> >> for subtitulo in lista_subtitulos: >> >> for i in range(0,len(lista_videos)): >> >> >> >> if subtitulo[i][0:4] == video[i][0:4]: >> >> subtitulo_final = video[0:-4] + '.srt' >> >> os.rename(subtitulo, subtitulo_final) >> >> >> >> > Ahí estás iterando una vez por cada vídeo. Por cada una de esas > iteraciones, estás recorriendo toda la lista de subtítulos y luego tienes > un tercer bucle dentro (!!) que recorre los índices de la lista de > vídeos... y los aplica como índice al *NOMBRE* de los subtítulos y los > vídeos. Como digo, un tanto caótico. En su lugar podrías hacer: > > for video in lista_videos: > for i in range(len(lista_subtitulos): > subtitulo = lista_subtitulos[i] > if subtitulo[:4] == video[:4]: > subtitulo_final = video[0:-4] + '.srt' > os.rename(subtitulo, subtitulo_final) > del lista_subtitulos[i] > break > > Observa que pongo un 'break' si se renombra un subtítulo. Esto es porque > asumo que no habrá dos subtítulos que valgan al mismo vídeo, así que > paramos la búsqueda ahí, para ahorrar ciclos en el bucle (si los hubiera, > el segundo subtitulo *machacaría al primero*, ya que dos ficheros no pueden > tener el mismo nombre...) > > También: si hemos sustituido un subtitulo, lo elimino de la lista, para no > tener que usarlo en comprobaciones futuras (que no iban a servir para nada). > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Sent from my phone, sorry for brevity or typos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Tue May 10 15:28:03 2016 From: ricardo.cardenes en gmail.com (=?UTF-8?Q?Ricardo_C=C3=A1rdenes?=) Date: Tue, 10 May 2016 09:28:03 -1000 Subject: [Python-es] =?utf-8?q?Renombrar_subt=C3=ADtulos_seg=C3=BAn_archi?= =?utf-8?q?vos_de_video=2E?= In-Reply-To: <8DAFF588-9B30-489B-943E-79A8EFF7854E@gmail.com> References: <8DAFF588-9B30-489B-943E-79A8EFF7854E@gmail.com> Message-ID: De nada, Manuel. Un detalle: observa que el bucle externo lo hago directamente sobre lista_videos, pero el interno lo hago sobre el *rango* de lista_subtitulos. Como no sé cuánto sabes de Python, a lo mejor te preguntaste el por qué de esto, y sí que hay una razón: estoy modificando lista_subtitulos desde dentro del bucle que itera sobre ella. Esto no sería posible si estuviera iterando la lista directamente, porque Python prohibe cambios en las listas en esa situación. 2016-05-10 7:37 GMT-10:00 Manuel : > Muchas gracias, Ricardo. > > Con tus modificaciones y consejos, funciona perfectamente. Lo he ampliado > un poco y ahora > también me mueve los archivos renombrados a una carpeta. > Referente al triple bucle for, sé que era una idea horrible.(jejejeje) > > Nuevamente, gracias por tu ayuda. > > > El 9 may 2016, a las 21:44, Ricardo Cárdenes > escribió: > > No has comentado cómo para, pero sospecho que algún error saltará por > algún lado. El bucle que tienes montado es un poco caótico: > > 2016-05-09 9:29 GMT-10:00 Manuel : > >> for video in lista_videos: >> >> for subtitulo in lista_subtitulos: >> >> for i in range(0,len(lista_videos)): >> >> >> >> if subtitulo[i][0:4] == video[i][0:4]: >> >> subtitulo_final = video[0:-4] + '.srt' >> >> os.rename(subtitulo, subtitulo_final) >> >> >> >> > Ahí estás iterando una vez por cada vídeo. Por cada una de esas > iteraciones, estás recorriendo toda la lista de subtítulos y luego tienes > un tercer bucle dentro (!!) que recorre los índices de la lista de > vídeos... y los aplica como índice al *NOMBRE* de los subtítulos y los > vídeos. Como digo, un tanto caótico. En su lugar podrías hacer: > > for video in lista_videos: > for i in range(len(lista_subtitulos): > subtitulo = lista_subtitulos[i] > if subtitulo[:4] == video[:4]: > subtitulo_final = video[0:-4] + '.srt' > os.rename(subtitulo, subtitulo_final) > del lista_subtitulos[i] > break > > Observa que pongo un 'break' si se renombra un subtítulo. Esto es porque > asumo que no habrá dos subtítulos que valgan al mismo vídeo, así que > paramos la búsqueda ahí, para ahorrar ciclos en el bucle (si los hubiera, > el segundo subtitulo *machacaría al primero*, ya que dos ficheros no pueden > tener el mismo nombre...) > > También: si hemos sustituido un subtitulo, lo elimino de la lista, para no > tener que usarlo en comprobaciones futuras (que no iban a servir para nada). > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 ovasquezcyt en gmail.com Tue May 10 15:52:40 2016 From: ovasquezcyt en gmail.com (oduber e. vasquez b.) Date: Tue, 10 May 2016 15:52:40 -0400 Subject: [Python-es] Fwd: guardar imagen con sqlalchemy In-Reply-To: References: Message-ID: ---------- Forwarded message ---------- From: oduber e. vasquez b. Date: 2016-05-09 15:20 GMT-04:00 Subject: guardar imagen con sqlalchemy To: La lista de python en castellano Hola. estoy trabajando con sqlalchemy, gtk y glade, no puedo conseguir guardar una imagen en un campo llamado photo desde python ejemplo: #!/usr/bin/env python # -*- coding: utf-8 -*- """ Archivo: login.py J.M.M. 15/03/2011 Descripci?n: carga login.glade - Ventana de ingreso al sistema """ import os import sys import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk as gtk class GtkImagen(object): def __init__(self): objsE = gtk.Builder() try: objsE.add_from_file('vistas/pantallaimagen.glade') except: print("Archivo no Existe") sys.exit() # Se recuperan los widget a usar (no son necesarios todos) self.winEdit = objsE.get_object('winImagen') self.image = objsE.get_object('imgMostrar') self.status = 'A' #formato = "%d/%m/%Y" #self.fecha = calendario.toStr(self.calendario.calendario.get_date()) #fecha = datetime.strptime(fecha, formato) objsE.connect_signals(self) self.winEdit.show() # Se asocian las senales del archivo glade a metodos de la clase def on_btnImagen_clicked(self, widget): dialog = gtk.FileChooserDialog ("Open Image", widget.get_toplevel(), gtk.FileChooserAction.OPEN) dialog.add_button (gtk.STOCK_CANCEL, 0) dialog.add_button (gtk.STOCK_OK, 1) dialog.set_default_response(1) filefilter = gtk.FileFilter() filefilter.add_pixbuf_formats () dialog.set_filter(filefilter) if dialog.run() == 1: self.image.set_from_file(dialog.get_filename()) dialog.destroy() def on_btnCapturar_clicked(self, widget): #pixbuf = self.image.get_pixbuf() #pixbuf = self.image.get_icon_name() pixbuf = self.image.get_stock() print(pixbuf) def on_winImagen_destroy(self, widget): gtk.main_quit() if __name__ == '__main__': app = GtkImagen() gtk.main() QUE DATO DEBO TENER EN LA VARIABLE "pixbuf" para almacenarla en la tabla con sqlalchemy -- -- Profesor oduber Vasquez Brito Jefe de Telemática Teléfono: 0426-567-3058 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pixukideak en gmail.com Wed May 11 04:01:10 2016 From: pixukideak en gmail.com (Pixu Kideak) Date: Wed, 11 May 2016 10:01:10 +0200 Subject: [Python-es] =?utf-8?q?Empleo_en_OVH_=28Espa=C3=B1a=29?= Message-ID: Buenos días, He entrado en OVH (Madrid) y he visto que estaban buscando gente con conocimiento de Python; me he acordado de la lista. Por si alguno esta interesado: https://www.ovh.com/ca/en/careers/world.xml?ref=devops-es&type=es Un saludo, ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Wed May 11 07:44:02 2016 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 11 May 2016 11:44:02 +0000 Subject: [Python-es] =?utf-8?q?Empleo_en_OVH_=28Espa=C3=B1a=29?= In-Reply-To: References: Message-ID: El mié., 11 may. 2016 a las 10:01, Pixu Kideak () escribió: > Buenos días, > > He entrado en OVH (Madrid) y he visto que estaban buscando gente con > conocimiento de Python; me he acordado de la lista. > > Por si alguno esta interesado: > https://www.ovh.com/ca/en/careers/world.xml?ref=devops-es&type=es > Sólo por comentar esta frase: "tu misión será desarrollar servicios, con kickstarted por nuestro departamento de I + D y ponerlos a disposición de todo el mundo " Da la idea de que busquen freelancers, con compromiso, pero sin relación laboral con la empresa, y con pago a través de micromecenazgo (kickstarted). Espero estar equivocado en la interpretación de la oferta, pero parece que el sector informático aún puede ir a peor en este país. > > > Un saludo, > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jjsangalo en gmail.com Thu May 12 04:23:14 2016 From: jjsangalo en gmail.com (Javier Sangalo) Date: Thu, 12 May 2016 10:23:14 +0200 Subject: [Python-es] Paython trabaja en memoria? Message-ID: Buenos días, Me surge una duda, R trabaja en memoria con el inconveniente que tiene si no dispones de suficiente memoria ram, pero...y Python? trabaja de la misma forma? Gracias! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Thu May 12 04:40:32 2016 From: kikocorreoso en gmail.com (Kiko) Date: Thu, 12 May 2016 10:40:32 +0200 Subject: [Python-es] Paython trabaja en memoria? In-Reply-To: References: Message-ID: El 12 de mayo de 2016, 10:23, Javier Sangalo escribió: > Buenos días, > > Me surge una duda, R trabaja en memoria con el inconveniente que tiene si > no dispones de suficiente memoria ram, pero...y Python? trabaja de la misma > forma? > > Sí. R, Python y el resto del universo. Tendrás que encargarte de gestionar la memoria. Hay formas más o menos eficientes de hacerlo. Si describes un poco mejor tu problema relacionado con Python quizá te puedan ofrecer mejor ayuda. > Gracias! > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 jespinog en gmail.com Thu May 12 04:45:42 2016 From: jespinog en gmail.com (=?UTF-8?Q?Jes=C3=BAs_Espino?=) Date: Thu, 12 May 2016 10:45:42 +0200 Subject: [Python-es] Paython trabaja en memoria? In-Reply-To: References: Message-ID: Entiendo que se refiere a que las operaciones que hace R para hacer calculos sobre conjuntos de datos los hace dando por hecho que toda la muestra está en memoria. Entiendo que en python eso dependerá de la biblioteca que se use, ya que probablemente algunas bibliotecas te permitan hacer calculos desde ficheros leyendo los datos y descartandolos cuando ya no hacen falta, mientras que en R la muestra tiene que caber en memoria. No conozco bien las bibliotecas de analisis estadistico en python y no se que permiten, seguramente alguien pueda contestar mejor que yo a esa pregunta. Un saludo. 2016-05-12 10:40 GMT+02:00 Kiko : > > El 12 de mayo de 2016, 10:23, Javier Sangalo > escribió: > >> Buenos días, >> >> Me surge una duda, R trabaja en memoria con el inconveniente que tiene si >> no dispones de suficiente memoria ram, pero...y Python? trabaja de la misma >> forma? >> >> > Sí. R, Python y el resto del universo. Tendrás que encargarte de gestionar > la memoria. Hay formas más o menos eficientes de hacerlo. Si describes un > poco mejor tu problema relacionado con Python quizá te puedan ofrecer mejor > ayuda. > > >> Gracias! >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 jjsangalo en gmail.com Thu May 12 04:50:58 2016 From: jjsangalo en gmail.com (Javier Sangalo) Date: Thu, 12 May 2016 10:50:58 +0200 Subject: [Python-es] Paython trabaja en memoria? In-Reply-To: References: Message-ID: muchas gracias! No tengo ningun problema en particular, tan solo que me hen hecho esa pregunta y no estaba seguro de que responder jeje. El 12 de mayo de 2016, 10:40, Kiko escribió: > > El 12 de mayo de 2016, 10:23, Javier Sangalo > escribió: > >> Buenos días, >> >> Me surge una duda, R trabaja en memoria con el inconveniente que tiene si >> no dispones de suficiente memoria ram, pero...y Python? trabaja de la misma >> forma? >> >> > Sí. R, Python y el resto del universo. Tendrás que encargarte de gestionar > la memoria. Hay formas más o menos eficientes de hacerlo. Si describes un > poco mejor tu problema relacionado con Python quizá te puedan ofrecer mejor > ayuda. > > >> Gracias! >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 May 12 12:10:10 2016 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 12 May 2016 16:10:10 +0000 Subject: [Python-es] Paython trabaja en memoria? In-Reply-To: References: Message-ID: El jue., 12 may. 2016 a las 10:51, Javier Sangalo () escribió: > muchas gracias! > No tengo ningun problema en particular, tan solo que me hen hecho esa > pregunta y no estaba seguro de que responder jeje. > La diferencia entre trabajar con datos en memoria en lugar de en disco supone un factor multiplicativo de x200000. Con los nuevos discos SSD mejora bastante bajando a unos x10000. Vamos, que es muy recomendable tener todos los datos en memoria, aunque sea como matrices dispersas (sparse matrices), con el fin de operar más rápido sin pasar por disco. Tanto R como numpy tienen técnicas para optimizar el espacio ocupado en memoria. Pero no siempre es la mejor opción. A veces tu datos vienen como streams de datos desde algún servidor web o desde algún nodo de la base de datos. En estos casos, los tiempos invertidos en traerte los datos pueden ser mucho mayor que el que inviertes escribiendo/leyendo del disco local, con lo que puedes usar el disco como almacenamiento secundario para liberar RAM. Es en parte lo que hace Hadoop para poder procesar colecciones de datos enormes (aunque luego venga Spark y pulverize los tiempos de proceso cacheándolo todo en RAM). Una comparativa tecnológica e histórica de los tiempos de latencia: https://gist.github.com/jboner/2841832 http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html > > El 12 de mayo de 2016, 10:40, Kiko escribió: > >> >> El 12 de mayo de 2016, 10:23, Javier Sangalo >> escribió: >> >>> Buenos días, >>> >>> Me surge una duda, R trabaja en memoria con el inconveniente que tiene >>> si no dispones de suficiente memoria ram, pero...y Python? trabaja de la >>> misma forma? >>> >>> >> Sí. R, Python y el resto del universo. Tendrás que encargarte de >> gestionar la memoria. Hay formas más o menos eficientes de hacerlo. Si >> describes un poco mejor tu problema relacionado con Python quizá te puedan >> ofrecer mejor ayuda. >> >> >>> Gracias! >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From faltet en gmail.com Thu May 12 15:56:46 2016 From: faltet en gmail.com (Francesc Alted) Date: Thu, 12 May 2016 21:56:46 +0200 Subject: [Python-es] Paython trabaja en memoria? In-Reply-To: References: Message-ID: 2016-05-12 18:10 GMT+02:00 Chema Cortes : > El jue., 12 may. 2016 a las 10:51, Javier Sangalo () > escribió: > >> muchas gracias! >> No tengo ningun problema en particular, tan solo que me hen hecho esa >> pregunta y no estaba seguro de que responder jeje. >> > > La diferencia entre trabajar con datos en memoria en lugar de en disco > supone un factor multiplicativo de x200000. Con los nuevos discos SSD > mejora bastante bajando a unos x10000. Vamos, que es muy recomendable tener > todos los datos en memoria, aunque sea como matrices dispersas (sparse > matrices), con el fin de operar más rápido sin pasar por disco. Tanto R > como numpy tienen técnicas para optimizar el espacio ocupado en memoria. > Supongo que estás citando números de latencia. Aunque la cifra para discos duros es más o menos correcta, la que das para SSDs está bastante desfasada. Actualmente puedes comprar SSDs SATA con latencias de entre 40 y 100 us sin hacer un gran desenbolso. Teniendo en cuenta que las latencias típicas de la RAM son de 0.1 us, la diferencia es ('solo') de entre 500x y 1000x. Para los discos SSD de PCIe, las latencias son bastante más bajas, y ya se pueden ver tarjetas a buen precio con latencias de 2 y 10 us (e incluso de menos de 1 us, como las de http://www.violin-memory.com/, aunque estas ya son *muy* caras). Respecto a las diferencias en ancho de banda las cosas van bastante más ajustadas, y los discos SSD SATA que saturan el bus (~520 MB/s) son muy habituales, mientras que los SSD PCIe pueden llegar hasta 2 GB/s. Compara esto con la RAM que va entre 10 GB/s a 20 GB/s (en ordenadores modernos). Añade compresión ultra-rápida para mejorar el ancho de banda de I/O y se ve claro que estamos asistiendo a una verdadera revolución que cambiará (está cambiando) la manera de guardar y efectuar cálculos con datos. Hablé justamente de esto en mi charla de PyData Madrid del mes pasado: https://speakerdeck.com/francescalted/new-computer-trends Francesc > > Pero no siempre es la mejor opción. A veces tu datos vienen como streams > de datos desde algún servidor web o desde algún nodo de la base de datos. > En estos casos, los tiempos invertidos en traerte los datos pueden ser > mucho mayor que el que inviertes escribiendo/leyendo del disco local, con > lo que puedes usar el disco como almacenamiento secundario para liberar > RAM. Es en parte lo que hace Hadoop para poder procesar colecciones de > datos enormes (aunque luego venga Spark y pulverize los tiempos de proceso > cacheándolo todo en RAM). > > Una comparativa tecnológica e histórica de los tiempos de latencia: > > https://gist.github.com/jboner/2841832 > http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html > > > >> >> El 12 de mayo de 2016, 10:40, Kiko escribió: >> >>> >>> El 12 de mayo de 2016, 10:23, Javier Sangalo >>> escribió: >>> >>>> Buenos días, >>>> >>>> Me surge una duda, R trabaja en memoria con el inconveniente que tiene >>>> si no dispones de suficiente memoria ram, pero...y Python? trabaja de la >>>> misma forma? >>>> >>>> >>> Sí. R, Python y el resto del universo. Tendrás que encargarte de >>> gestionar la memoria. Hay formas más o menos eficientes de hacerlo. Si >>> describes un poco mejor tu problema relacionado con Python quizá te puedan >>> ofrecer mejor ayuda. >>> >>> >>>> Gracias! >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Francesc Alted ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Thu May 12 16:40:54 2016 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Thu, 12 May 2016 16:40:54 -0400 Subject: [Python-es] pregunta de nova sobre unittest Message-ID: Hola, por fin me he decidido a aprender algo sobre unittest. Sip!, ahora. O sea que me podeis preguntar como demonios he estado programando hasta ahora sin unit tests. Pues de aquella manera... Imagino que me surgiran muchas preguntas. Al menos hasta que encuentre un buen libro (no he tenido demasiada suerte hasta la fecha con esto) y realmente comprenda lo que estoy haciendo. La primera pregunta que tengo es de puro novato. Pido disculpas por adelantado por ello. Imaginemos que tengo una clase tal que $ cat /usr/lib/python2.6/site-packages/mypackage/mymodule.py class myclass: def f(self, ....): # codigo aqui x = self.g() # codigo aqui def g(self, ...) # codigo aqui Y quiero hacer una unittest para validad metodo f( ), pero sin llamar a g( ) He estado leyendo sobre Mocking y Patching, pero por lo que he entendido, sirven para "falsear" otras clases que se usan en el codigo. Pero no veo como usar la misma estrategia para falsear la propia clase que se esta verificando. He intentado algo de este estilo: class Test(unittest.TestCase): @patch('mypackage.mymodule.myclass') def test_f(self, mock_requests): mock_requests.g.return_value = None obj = myclass() obj.f() con la esperanza de que no se llamaria realmente al codigo g(), pero parece que no funciona y el metodo g() sigue siendo invocado. Imagino que una forma naive seria hacer algo tipo: class mytestingclass(myclass): def g(self...): return None y pasar los unittest sobre la nueva clase mytestingclass. ?Pero no es algo rupestre? Si alguien tiene un link a alguna web con ejemplos de como hacer Mock/Patch de la propia clase, falseando las llamadas a otros metodos desde aquel metodo que se esta validando, estare mas que agradecido. Un saludo, Jose (p.s. perdon por la ausencia de tildes) From jcaballero.hep en gmail.com Thu May 12 16:58:32 2016 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Thu, 12 May 2016 16:58:32 -0400 Subject: [Python-es] pregunta de nova sobre unittest In-Reply-To: References: Message-ID: Lo voy a complicar un poco mas... $ cat /usr/lib/python2.6/site-packages/mypackage/mymodule.py class myclass: def f(self, ....): # codigo aqui x = self.g() y = self.h() # codigo aqui def g(self, ...): # codigo aqui def h(self, ...): # codigo aqui y quiero "patchear" g( ) y h( ) a la vez. From lasizoillo en gmail.com Thu May 12 17:57:26 2016 From: lasizoillo en gmail.com (lasizoillo) Date: Thu, 12 May 2016 23:57:26 +0200 Subject: [Python-es] pregunta de nova sobre unittest In-Reply-To: References: Message-ID: 2016-05-12 22:58 GMT+02:00 Jose Caballero : > Lo voy a complicar un poco mas... > > > $ cat /usr/lib/python2.6/site-packages/mypackage/mymodule.py > > class myclass: > > def f(self, ....): > # codigo aqui > x = self.g() > y = self.h() > # codigo aqui > > def g(self, ...): > # codigo aqui > > def h(self, ...): > # codigo aqui > > > y quiero "patchear" g( ) y h( ) a la vez. > class myfakeclass(myclass): def g(self, ...): # fake code def h(self, ...): # fake code Y testeas myfakeclass. > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 jcaballero.hep en gmail.com Thu May 12 20:34:25 2016 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Thu, 12 May 2016 20:34:25 -0400 Subject: [Python-es] pregunta de nova sobre unittest In-Reply-To: References: Message-ID: Hola de nuevo, he encontrado una manera de hacerlo (a parte de crear myfakeclass). Mas o menos funciona, aunque lo veo algo "error-prone": class Test(unittest.TestCase): @patch('mypackage.mymodule.myclass.g') @patch('mypackage.mymodule.myclass.h') def test_f(self, mock_requests1, mock_requests2): mock_requests1.return_value = None mock_requests2.return_value = None obj = myclass() obj.f() mock_requests1 es el argumento asociado a @patch('mypackage.mymodule.myclass.g') mock_requests2 es el argumento asociado a @patch('mypackage.mymodule.myclass.h') Lo que no me gusta es que si quito uno de los decoradores, hay que cambiar la lista de argumentos de test_f( ) Pero por lo demas, parece que funciona. From pych3m4 en gmail.com Thu May 12 21:20:58 2016 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 13 May 2016 01:20:58 +0000 Subject: [Python-es] Paython trabaja en memoria? In-Reply-To: References: Message-ID: El jue., 12 may. 2016 a las 21:57, Francesc Alted () escribió: > 2016-05-12 18:10 GMT+02:00 Chema Cortes : > >> El jue., 12 may. 2016 a las 10:51, Javier Sangalo () >> escribió: >> >>> muchas gracias! >>> No tengo ningun problema en particular, tan solo que me hen hecho esa >>> pregunta y no estaba seguro de que responder jeje. >>> >> >> La diferencia entre trabajar con datos en memoria en lugar de en disco >> supone un factor multiplicativo de x200000. Con los nuevos discos SSD >> mejora bastante bajando a unos x10000. Vamos, que es muy recomendable tener >> todos los datos en memoria, aunque sea como matrices dispersas (sparse >> matrices), con el fin de operar más rápido sin pasar por disco. Tanto R >> como numpy tienen técnicas para optimizar el espacio ocupado en memoria. >> > > Supongo que estás citando números de latencia. Aunque la cifra para > discos duros es más o menos correcta, la que das para SSDs está bastante > desfasada. Actualmente puedes comprar SSDs SATA con latencias de entre 40 > y 100 us sin hacer un gran desenbolso. Teniendo en cuenta que las > latencias típicas de la RAM son de 0.1 us, la diferencia es ('solo') de > entre 500x y 1000x. Para los discos SSD de PCIe, las latencias son > bastante más bajas, y ya se pueden ver tarjetas a buen precio con latencias > de 2 y 10 us (e incluso de menos de 1 us, como las de > http://www.violin-memory.com/, aunque estas ya son *muy* caras). > > Respecto a las diferencias en ancho de banda las cosas van bastante más > ajustadas, y los discos SSD SATA que saturan el bus (~520 MB/s) son muy > habituales, mientras que los SSD PCIe pueden llegar hasta 2 GB/s. Compara > esto con la RAM que va entre 10 GB/s a 20 GB/s (en ordenadores modernos). > Añade compresión ultra-rápida para mejorar el ancho de banda de I/O y se ve > claro que estamos asistiendo a una verdadera revolución que cambiará (está > cambiando) la manera de guardar y efectuar cálculos con datos. > > Hablé justamente de esto en mi charla de PyData Madrid del mes pasado: > > https://speakerdeck.com/francescalted/new-computer-trends > > Francesc > Tienes toda la razón, me había quedado desfasado. Hasta ahora sólo consideraba los SSDs para acelerar los sistemas críticos (eg: sistemas oracles), pero con lo que dices ya empiezan a ser muy interesantes para realizar cálculos masivos. Incluso me puedo imaginar ya realizable un viejo deseo: que la persistencia de los datos se independice de la vida de la aplicación. O visto de otro modo, los datos no se mueven, se mueven las aplicaciones (pensando siempre en programación funcional). > > >> >> Pero no siempre es la mejor opción. A veces tu datos vienen como streams >> de datos desde algún servidor web o desde algún nodo de la base de datos. >> En estos casos, los tiempos invertidos en traerte los datos pueden ser >> mucho mayor que el que inviertes escribiendo/leyendo del disco local, con >> lo que puedes usar el disco como almacenamiento secundario para liberar >> RAM. Es en parte lo que hace Hadoop para poder procesar colecciones de >> datos enormes (aunque luego venga Spark y pulverize los tiempos de proceso >> cacheándolo todo en RAM). >> >> Una comparativa tecnológica e histórica de los tiempos de latencia: >> >> https://gist.github.com/jboner/2841832 >> http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html >> >> >> >>> >>> El 12 de mayo de 2016, 10:40, Kiko escribió: >>> >>>> >>>> El 12 de mayo de 2016, 10:23, Javier Sangalo >>>> escribió: >>>> >>>>> Buenos días, >>>>> >>>>> Me surge una duda, R trabaja en memoria con el inconveniente que tiene >>>>> si no dispones de suficiente memoria ram, pero...y Python? trabaja de la >>>>> misma forma? >>>>> >>>>> >>>> Sí. R, Python y el resto del universo. Tendrás que encargarte de >>>> gestionar la memoria. Hay formas más o menos eficientes de hacerlo. Si >>>> describes un poco mejor tu problema relacionado con Python quizá te puedan >>>> ofrecer mejor ayuda. >>>> >>>> >>>>> Gracias! >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> -- >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >> http://ch3m4.org/blog >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Francesc Alted > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From faltet en gmail.com Fri May 13 04:51:59 2016 From: faltet en gmail.com (Francesc Alted) Date: Fri, 13 May 2016 10:51:59 +0200 Subject: [Python-es] Paython trabaja en memoria? In-Reply-To: References: Message-ID: 2016-05-13 3:20 GMT+02:00 Chema Cortes : > > > El jue., 12 may. 2016 a las 21:57, Francesc Alted () > escribió: > >> 2016-05-12 18:10 GMT+02:00 Chema Cortes : >> >>> El jue., 12 may. 2016 a las 10:51, Javier Sangalo () >>> escribió: >>> >>>> muchas gracias! >>>> No tengo ningun problema en particular, tan solo que me hen hecho esa >>>> pregunta y no estaba seguro de que responder jeje. >>>> >>> >>> La diferencia entre trabajar con datos en memoria en lugar de en disco >>> supone un factor multiplicativo de x200000. Con los nuevos discos SSD >>> mejora bastante bajando a unos x10000. Vamos, que es muy recomendable tener >>> todos los datos en memoria, aunque sea como matrices dispersas (sparse >>> matrices), con el fin de operar más rápido sin pasar por disco. Tanto R >>> como numpy tienen técnicas para optimizar el espacio ocupado en memoria. >>> >> >> Supongo que estás citando números de latencia. Aunque la cifra para >> discos duros es más o menos correcta, la que das para SSDs está bastante >> desfasada. Actualmente puedes comprar SSDs SATA con latencias de entre 40 >> y 100 us sin hacer un gran desenbolso. Teniendo en cuenta que las >> latencias típicas de la RAM son de 0.1 us, la diferencia es ('solo') de >> entre 500x y 1000x. Para los discos SSD de PCIe, las latencias son >> bastante más bajas, y ya se pueden ver tarjetas a buen precio con latencias >> de 2 y 10 us (e incluso de menos de 1 us, como las de >> http://www.violin-memory.com/, aunque estas ya son *muy* caras). >> >> Respecto a las diferencias en ancho de banda las cosas van bastante más >> ajustadas, y los discos SSD SATA que saturan el bus (~520 MB/s) son muy >> habituales, mientras que los SSD PCIe pueden llegar hasta 2 GB/s. Compara >> esto con la RAM que va entre 10 GB/s a 20 GB/s (en ordenadores modernos). >> Añade compresión ultra-rápida para mejorar el ancho de banda de I/O y se ve >> claro que estamos asistiendo a una verdadera revolución que cambiará (está >> cambiando) la manera de guardar y efectuar cálculos con datos. >> >> Hablé justamente de esto en mi charla de PyData Madrid del mes pasado: >> >> https://speakerdeck.com/francescalted/new-computer-trends >> >> Francesc >> > > Tienes toda la razón, me había quedado desfasado. Hasta ahora sólo > consideraba los SSDs para acelerar los sistemas críticos (eg: sistemas > oracles), pero con lo que dices ya empiezan a ser muy interesantes para > realizar cálculos masivos. > > Incluso me puedo imaginar ya realizable un viejo deseo: que la > persistencia de los datos se independice de la vida de la aplicación. O > visto de otro modo, los datos no se mueven, se mueven las aplicaciones > (pensando siempre en programación funcional). > Si, mucha gente va detrás de eso. Sin embargo, hay muchas aplicaciones y cada una tiene sus necesidades. Yo más bien abogo por empezar a utilizar la jerarquía de memoria (y muy en particular los SSDs) de manera eficaz, cosa que se podrá aprovechar para tu 'viejo deseo' de que los datos no se muevan. Pero no nos equivoquemos, las CPUs hacen càlculos con las caches (más que con la RAM), y no hay más tu tía que los datos sean transmitidos a ellas de manera eficiente a través de la jerarquía de memoria para que los cores de las CPUs dejen de estar tanto tiempo haciendo nada más que esperar a los datos. La compresión puede ayudar a rebajar la cantidad de bytes transmitidos (al tiempo que se usan ciclos de CPU que otra manera se desaprovechan), pero aun así hay mucha labor por hacer en determinar parámetros esenciales como los tamaños de bloque, los contenedores de datos óptimos, etc... Aquí hay otro ejemplo de contenedor multidimensional totalmente general que se está desarrollando ahora mismo con todo esto en mente: http://zarr.readthedocs.io/en/refactor/index.html y aquí unos benchmarks: http://nbviewer.jupyter.org/github/alimanfoo/zarr/blob/refactor/notebooks/dask_copy.ipynb Como se ve, usar todos nuestros cores (que usualmente están parados), así como las capacidades SIMD de las CPUs modernas (que también están infra-utilizadas), y en el futuro, las GPUs integradas, es fundamental para hacer que los datos fluyan hacia la CPU lo más rápido posible. Francesc > > > >> >> >>> >>> Pero no siempre es la mejor opción. A veces tu datos vienen como streams >>> de datos desde algún servidor web o desde algún nodo de la base de datos. >>> En estos casos, los tiempos invertidos en traerte los datos pueden ser >>> mucho mayor que el que inviertes escribiendo/leyendo del disco local, con >>> lo que puedes usar el disco como almacenamiento secundario para liberar >>> RAM. Es en parte lo que hace Hadoop para poder procesar colecciones de >>> datos enormes (aunque luego venga Spark y pulverize los tiempos de proceso >>> cacheándolo todo en RAM). >>> >>> Una comparativa tecnológica e histórica de los tiempos de latencia: >>> >>> https://gist.github.com/jboner/2841832 >>> http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html >>> >>> >>> >>>> >>>> El 12 de mayo de 2016, 10:40, Kiko escribió: >>>> >>>>> >>>>> El 12 de mayo de 2016, 10:23, Javier Sangalo >>>>> escribió: >>>>> >>>>>> Buenos días, >>>>>> >>>>>> Me surge una duda, R trabaja en memoria con el inconveniente que >>>>>> tiene si no dispones de suficiente memoria ram, pero...y Python? trabaja de >>>>>> la misma forma? >>>>>> >>>>>> >>>>> Sí. R, Python y el resto del universo. Tendrás que encargarte de >>>>> gestionar la memoria. Hay formas más o menos eficientes de hacerlo. Si >>>>> describes un poco mejor tu problema relacionado con Python quizá te puedan >>>>> ofrecer mejor ayuda. >>>>> >>>>> >>>>>> Gracias! >>>>>> >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es en python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>> -- >>> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >>> http://ch3m4.org/blog >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Francesc Alted >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > -- Francesc Alted ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From yamila.ms en gmail.com Thu May 19 16:13:50 2016 From: yamila.ms en gmail.com (=?UTF-8?Q?Yamila_Moreno_Su=C3=A1rez?=) Date: Thu, 19 May 2016 22:13:50 +0200 Subject: [Python-es] pregunta de nova sobre unittest In-Reply-To: References: Message-ID: Buenas! En lugar de usar decoradores, prueba a usar el context manager: def test_my_method(): with patch('module.to.patch') as mock_1: mock_1.return_value = xxx result = my_method() assert mock_1.calle_count == 1 assert result == lo-que-sea Suerte! Y si ves que es un poco lío, no desesperes, es un lío de cuidado. Ánimo :-) El 13 may. 2016 2:34, "Jose Caballero" escribió: > Hola de nuevo, > > he encontrado una manera de hacerlo (a parte de crear myfakeclass). > Mas o menos funciona, aunque lo veo algo "error-prone": > > > class Test(unittest.TestCase): > > @patch('mypackage.mymodule.myclass.g') > @patch('mypackage.mymodule.myclass.h') > def test_f(self, mock_requests1, mock_requests2): > mock_requests1.return_value = None > mock_requests2.return_value = None > obj = myclass() > obj.f() > > > mock_requests1 es el argumento asociado a > @patch('mypackage.mymodule.myclass.g') > mock_requests2 es el argumento asociado a > @patch('mypackage.mymodule.myclass.h') > > Lo que no me gusta es que si quito uno de los decoradores, hay que > cambiar la lista de argumentos de test_f( ) > Pero por lo demas, parece que funciona. > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 jcaballero.hep en gmail.com Fri May 20 11:10:00 2016 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Fri, 20 May 2016 11:10:00 -0400 Subject: [Python-es] pregunta de nova sobre unittest In-Reply-To: References: Message-ID: creo recordar que lo intente cuando abri el hilo. No recuerdo muy bien, pero creo que no supe como hacerlo para 2 o mas metodos. Lo intentare de nuevo. PS: perdon por las [no] tildes El día 19 de mayo de 2016, 16:13, Yamila Moreno Suárez escribió: > Buenas! En lugar de usar decoradores, prueba a usar el context manager: > > def test_my_method(): > with patch('module.to.patch') as mock_1: > mock_1.return_value = xxx > result = my_method() > assert mock_1.calle_count == 1 > assert result == lo-que-sea > > Suerte! > > Y si ves que es un poco lío, no desesperes, es un lío de cuidado. Ánimo :-) > > El 13 may. 2016 2:34, "Jose Caballero" escribió: >> >> Hola de nuevo, >> >> he encontrado una manera de hacerlo (a parte de crear myfakeclass). >> Mas o menos funciona, aunque lo veo algo "error-prone": >> >> >> class Test(unittest.TestCase): >> >> @patch('mypackage.mymodule.myclass.g') >> @patch('mypackage.mymodule.myclass.h') >> def test_f(self, mock_requests1, mock_requests2): >> mock_requests1.return_value = None >> mock_requests2.return_value = None >> obj = myclass() >> obj.f() >> >> >> mock_requests1 es el argumento asociado a >> @patch('mypackage.mymodule.myclass.g') >> mock_requests2 es el argumento asociado a >> @patch('mypackage.mymodule.myclass.h') >> >> Lo que no me gusta es que si quito uno de los decoradores, hay que >> cambiar la lista de argumentos de test_f( ) >> Pero por lo demas, parece que funciona. >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > From yamila.ms en gmail.com Fri May 20 13:14:17 2016 From: yamila.ms en gmail.com (=?UTF-8?Q?Yamila_Moreno_Su=C3=A1rez?=) Date: Fri, 20 May 2016 19:14:17 +0200 Subject: [Python-es] pregunta de nova sobre unittest In-Reply-To: References: Message-ID: Si tienes que mockear varios métodos lo más fácil es poner varios "with" atendiendo a pequeñas cosas: - cada sentencia sangrada (indentada) respecto a la anterior - el código que pruebas sangrado respecto a todos los bloques with - asegúrate de que cada block tiene un alias distinto Por cierto en la docu oficial además explican patch.object('my_module.MyClass') para mockear clases con métodos en lugar de funciones. Suerte! El 20 may. 2016 17:10, "Jose Caballero" escribió: > creo recordar que lo intente cuando abri el hilo. No recuerdo muy > bien, pero creo que no supe como hacerlo para 2 o mas metodos. Lo > intentare de nuevo. > > PS: perdon por las [no] tildes > > El día 19 de mayo de 2016, 16:13, Yamila Moreno Suárez > escribió: > > Buenas! En lugar de usar decoradores, prueba a usar el context manager: > > > > def test_my_method(): > > with patch('module.to.patch') as mock_1: > > mock_1.return_value = xxx > > result = my_method() > > assert mock_1.calle_count == 1 > > assert result == lo-que-sea > > > > Suerte! > > > > Y si ves que es un poco lío, no desesperes, es un lío de cuidado. Ánimo > :-) > > > > El 13 may. 2016 2:34, "Jose Caballero" > escribió: > >> > >> Hola de nuevo, > >> > >> he encontrado una manera de hacerlo (a parte de crear myfakeclass). > >> Mas o menos funciona, aunque lo veo algo "error-prone": > >> > >> > >> class Test(unittest.TestCase): > >> > >> @patch('mypackage.mymodule.myclass.g') > >> @patch('mypackage.mymodule.myclass.h') > >> def test_f(self, mock_requests1, mock_requests2): > >> mock_requests1.return_value = None > >> mock_requests2.return_value = None > >> obj = myclass() > >> obj.f() > >> > >> > >> mock_requests1 es el argumento asociado a > >> @patch('mypackage.mymodule.myclass.g') > >> mock_requests2 es el argumento asociado a > >> @patch('mypackage.mymodule.myclass.h') > >> > >> Lo que no me gusta es que si quito uno de los decoradores, hay que > >> cambiar la lista de argumentos de test_f( ) > >> Pero por lo demas, parece que funciona. > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 alito81 en gmail.com Mon May 23 21:37:20 2016 From: alito81 en gmail.com (alito) Date: Mon, 23 May 2016 20:37:20 -0500 Subject: [Python-es] Mayusculas y minusculas en una secuencia Message-ID: <4e2a9967-3a42-cdbe-f497-7fc257f40617@gmail.com> Hola a todos: Tengo un pequeño codigo que no se como hacer que sea iterativo, yo se que para ustedes es fácil pero para mi se me ha complicado un poco. Quiero convertir a mayusculas una region determinada de una secuencia. La region esta en la primera linea y la region de la secuencia que quiero cambiar esta en la segunda linea. Logro que lea la region y posteriormente cambie a mayusculas la region, pero cuando son varias regiones me da por separado las secuencias y no en la misma secuencia. Mi código esta asi: for line in x: inp = open("archivo", "r") x = inp.readlines() l1 = x[0].strip().split(",") l2 = x[1].strip() for j in range(1,len(l1)-1): reg = l1[j].split("-") reg1 = int(reg[0]) reg2 = int(reg[1]) c1 = l2[:(reg1-1)] + l2[(reg1-1):reg2].upper() + l2[(reg2):] print str(reg1) + " - " + str(reg2) print c1 Este es un ejemplo de un archivo sin que se haya convertido a mayusculas: #region 1-15, 17-20, 30-45 estaeslasecuenciaquemegustariaqueestuvieraenmayusculascadavezqueelprogramaencuentrelasregionesindicadas Este es un ejemplo de como me gustaria que quedara el archivo una vez que se corra el programa: #region 1-15, 17-20, 30-75 ESTAESLASECUENcIAQUemegustarIAQUEESTUVIERAENMAYUSCULASCADAVEZQUEELPROGRAMAencuentrelasregionesindicadas Agradezco su ayuda From jcaballero.hep en gmail.com Mon May 23 21:59:22 2016 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Mon, 23 May 2016 21:59:22 -0400 Subject: [Python-es] Mayusculas y minusculas en una secuencia In-Reply-To: <4e2a9967-3a42-cdbe-f497-7fc257f40617@gmail.com> References: <4e2a9967-3a42-cdbe-f497-7fc257f40617@gmail.com> Message-ID: <00B801B2-FAD5-4627-A15B-BC4B1B6C65F3@gmail.com> > Quiero convertir a mayusculas una region determinada de una secuencia. La region esta en la primera linea y la region de la secuencia que quiero cambiar esta en la segunda linea. No acabo de entenderlo. Quizás si lo explicas de otra manera... From pych3m4 en gmail.com Tue May 24 04:12:03 2016 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 24 May 2016 08:12:03 +0000 Subject: [Python-es] Mayusculas y minusculas en una secuencia In-Reply-To: <4e2a9967-3a42-cdbe-f497-7fc257f40617@gmail.com> References: <4e2a9967-3a42-cdbe-f497-7fc257f40617@gmail.com> Message-ID: El mar., 24 may. 2016 a las 3:28, alito () escribió: > Hola a todos: > > Tengo un pequeño codigo que no se como hacer que sea iterativo, yo se > que para ustedes es fácil pero para mi se me ha complicado un poco. > > Quiero convertir a mayusculas una region determinada de una secuencia. > La region esta en la primera linea y la region de la secuencia que > quiero cambiar esta en la segunda linea. > > Logro que lea la region y posteriormente cambie a mayusculas la region, > pero cuando son varias regiones me da por separado las secuencias y no > en la misma secuencia. > > Cuesta entender lo que quieres si no aclaras mejor los términos que usas. Cuando te refieres a "secuencias", mejor que digas "cadenas de caracteres" o, directamente, "strings". Las "secuencias" suelen ser algo similar a listas que se procesan de modo secuencial. Por lo que se ve, en la primera línea tienes parejas de números que delimitan las regiones que quieres cambiar, mientras que en la segunda estaría la cadena a cambiar. > Mi código esta asi: > > for line in x: > > inp = open("archivo", "r") > > x = inp.readlines() > l1 = x[0].strip().split(",") > l2 = x[1].strip() > for j in range(1,len(l1)-1): > reg = l1[j].split("-") > reg1 = int(reg[0]) > reg2 = int(reg[1]) > c1 = l2[:(reg1-1)] + l2[(reg1-1):reg2].upper() + l2[(reg2):] > print str(reg1) + " - " + str(reg2) > print c1 > > Lo que no entiendo es qué era 'x' antes de entrar en el bucle for, que luego cambias dentro del bucle. Algo está mal en este código. Pero estudiando el código, guardas la línea a cambiar en 'l2' y usas 'c1' como espacio temporal donde cambiar una región a mayúsculas. Si lo que quieres es cambiar varias regiones, basta con que uses 'l2' en lugar de 'c1', de modo que en cada iteración se irán cambiando a mayúsculas cada una de las regiones. Basta imprimir 'l2' al final del bucle. > Este es un ejemplo de un archivo sin que se haya convertido a mayusculas: > > #region 1-15, 17-20, 30-45 > > > estaeslasecuenciaquemegustariaqueestuvieraenmayusculascadavezqueelprogramaencuentrelasregionesindicadas > > > Este es un ejemplo de como me gustaria que quedara el archivo una vez > que se corra el programa: > > #region 1-15, 17-20, 30-75 > > > ESTAESLASECUENcIAQUemegustarIAQUEESTUVIERAENMAYUSCULASCADAVEZQUEELPROGRAMAencuentrelasregionesindicadas > > Agradezco su ayuda > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Tue May 24 08:14:59 2016 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Tue, 24 May 2016 08:14:59 -0400 Subject: [Python-es] Mayusculas y minusculas en una secuencia In-Reply-To: References: <4e2a9967-3a42-cdbe-f497-7fc257f40617@gmail.com> Message-ID: <58C81349-F58B-41F1-8E7D-C2EA7912C639@gmail.com> > Por lo que se ve, en la primera línea tienes parejas de números que delimitan las regiones que quieres cambiar, mientras que en la segunda estaría la cadena a cambiar. Y aquí creo que hay cierta indefinición en el problema. ¿Cuál es el primer índice de la cadena? ¿0 o 1? En la región N-M, ¿se cambian a mayúsculas los caracteres hasta M o hasta M-1? From alito81 en gmail.com Tue May 24 15:26:05 2016 From: alito81 en gmail.com (alito) Date: Tue, 24 May 2016 14:26:05 -0500 Subject: [Python-es] Mayusculas y minusculas en una secuencia In-Reply-To: References: <4e2a9967-3a42-cdbe-f497-7fc257f40617@gmail.com> Message-ID: <5a077aa4-173d-d961-36f0-0c4f235e6046@gmail.com> Si, es verdad, sale con l2. Gracias por el comentario y la corrección. El 24/05/16 a las 03:12, Chema Cortes escribió: > El mar., 24 may. 2016 a las 3:28, alito ( >) escribió: > > Hola a todos: > > Tengo un pequeño codigo que no se como hacer que sea iterativo, yo se > que para ustedes es fácil pero para mi se me ha complicado un poco. > > Quiero convertir a mayusculas una region determinada de una secuencia. > La region esta en la primera linea y la region de la secuencia que > quiero cambiar esta en la segunda linea. > > Logro que lea la region y posteriormente cambie a mayusculas la > region, > pero cuando son varias regiones me da por separado las secuencias y no > en la misma secuencia. > > > Cuesta entender lo que quieres si no aclaras mejor los términos que usas. > > Cuando te refieres a "secuencias", mejor que digas "cadenas de > caracteres" o, directamente, "strings". Las "secuencias" suelen ser > algo similar a listas que se procesan de modo secuencial. > > Por lo que se ve, en la primera línea tienes parejas de números que > delimitan las regiones que quieres cambiar, mientras que en la segunda > estaría la cadena a cambiar. > > Mi código esta asi: > > for line in x: > > inp = open("archivo", "r") > > x = inp.readlines() > l1 = x[0].strip().split(",") > l2 = x[1].strip() > for j in range(1,len(l1)-1): > reg = l1[j].split("-") > reg1 = int(reg[0]) > reg2 = int(reg[1]) > c1 = l2[:(reg1-1)] + l2[(reg1-1):reg2].upper() + > l2[(reg2):] > print str(reg1) + " - " + str(reg2) > print c1 > > > Lo que no entiendo es qué era 'x' antes de entrar en el bucle for, que > luego cambias dentro del bucle. Algo está mal en este código. > > Pero estudiando el código, guardas la línea a cambiar en 'l2' y usas > 'c1' como espacio temporal donde cambiar una región a mayúsculas. Si > lo que quieres es cambiar varias regiones, basta con que uses 'l2' en > lugar de 'c1', de modo que en cada iteración se irán cambiando a > mayúsculas cada una de las regiones. Basta imprimir 'l2' al final del > bucle. > > Este es un ejemplo de un archivo sin que se haya convertido a > mayusculas: > > #region 1-15, 17-20, 30-45 > > estaeslasecuenciaquemegustariaqueestuvieraenmayusculascadavezqueelprogramaencuentrelasregionesindicadas > > > Este es un ejemplo de como me gustaria que quedara el archivo una vez > que se corra el programa: > > #region 1-15, 17-20, 30-75 > > ESTAESLASECUENcIAQUemegustarIAQUEESTUVIERAENMAYUSCULASCADAVEZQUEELPROGRAMAencuentrelasregionesindicadas > > Agradezco su ayuda > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 gvm2121 en gmail.com Wed May 25 19:04:57 2016 From: gvm2121 en gmail.com (Gonzalo V) Date: Wed, 25 May 2016 19:04:57 -0400 Subject: [Python-es] Sobre pandas, matplotlib etc Message-ID: Hola a todos En esta lista se pueden hacer preguntas sobre los modulos pandas?, anaconda en general? saludos, desde un móvil. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From chack14rock en gmail.com Wed May 25 19:17:02 2016 From: chack14rock en gmail.com (=?UTF-8?Q?Charly_Rom=C3=A1n?=) Date: Wed, 25 May 2016 18:17:02 -0500 Subject: [Python-es] Sobre pandas, matplotlib etc In-Reply-To: References: Message-ID: Si es python, se puede. (Osea, si) Charly Román Software Developer http://croman.mx El 25 de mayo de 2016, 18:04, Gonzalo V escribió: > Hola a todos > En esta lista se pueden hacer preguntas sobre los modulos pandas?, > anaconda en general? > > saludos, > desde un móvil. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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 cesar.ortiz en gmail.com Thu May 26 09:00:03 2016 From: cesar.ortiz en gmail.com (Cesar Ortiz) Date: Thu, 26 May 2016 15:00:03 +0200 Subject: [Python-es] Oferta de trabajo para TheMotion Message-ID: Buenas tardes, Escribo a la lista para comentaros que en http://www.themotion.com/ estamos buscando ahora mismo dos desarrolladores, uno orientado a Video Processing y otro a Data/Analytics. Por si pudiera interesar a alguien... ¿Que somos? + Somos una startup, financiada por The Next Chance Group. + Estamos en el momento decisivo de realmente ejecutar. Estamos integrando los primeros clientes. ¿Donde Estamos? + En Torre Espacio, Madrid. ¿Que es lo que hacemos? + Estamos construyendo una plataforma para la generación de videos a gran escala. + El scope de la compañía es global Tenemos publicadas ambas ofertas en LinkedIn ( https://www.linkedin.com/vsearch/j?page_num=1&locationType=Y&f_C=10276075&trk=careers_promo_module_see_jobs), pero os copio un extracto de la oferta que vamos a publicar (para data/analytics), que refleja mejor lo que buscamos... *"We are looking for software engineers passionate about DevOps and agile practices, who understand their pros and cons, and that have the courage to join us in building a new generation of video platforms.* *We are defining the future of the internet video, and perhaps you can help us with that :)* *For our team in sunny Madrid, we are looking for engineers:* *+ proficient in any OO programming languages (preferably Python or other dynamic languages)* *+ capable of working full-stack and understanding the whole lifecycle of the products they build* *+ experienced in large scale data storage and asynchronous processing* *+ embracing good technical practices and principles (SOLID, YAGNI, DRY)* *+ understanding the modern software development processes (CD, CI, TDD)* *It will be considered a great plus to have or at least eager to learn:* *+ Big Data, analytics* *+ Microservices and distributed computing* *+ Cloud and SAAS systems* *+ Lean / Agile way of thinking"* Podeis echar un ojo al equipo actual en LinkedIn: https://www.linkedin.com/vsearch/p?f_CC=10276075. Acabo indicando que el inglés está en nuestro a día; somos remote friendly y tenemos gente en Israel y Polonia. Saludos, -- César PD: No puedo indicar nada sobre el aspecto económico. Pero no pagamos 'peanuts' ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Thu May 26 09:12:39 2016 From: kikocorreoso en gmail.com (Kiko) Date: Thu, 26 May 2016 15:12:39 +0200 Subject: [Python-es] Oferta de trabajo para TheMotion In-Reply-To: References: Message-ID: 2016-05-26 15:00 GMT+02:00 Cesar Ortiz : > Buenas tardes, > > Escribo a la lista para comentaros que en http://www.themotion.com/ > estamos buscando ahora mismo dos desarrolladores, uno orientado a Video > Processing y otro a Data/Analytics. Por si pudiera interesar a alguien... > > ¿Que somos? > > + Somos una startup, financiada por The Next Chance Group. > + Estamos en el momento decisivo de realmente ejecutar. Estamos integrando > los primeros clientes. > > ¿Donde Estamos? > > + En Torre Espacio, Madrid. > > ¿Que es lo que hacemos? > > + Estamos construyendo una plataforma para la generación de videos a gran > escala. > + El scope de la compañía es global > > > Tenemos publicadas ambas ofertas en LinkedIn ( > https://www.linkedin.com/vsearch/j?page_num=1&locationType=Y&f_C=10276075&trk=careers_promo_module_see_jobs), > pero os copio un extracto de la oferta que vamos a publicar (para > data/analytics), que refleja mejor lo que buscamos... > > *"We are looking for software engineers passionate about DevOps and agile > practices, who understand their pros and cons, and that have the courage to > join us in building a new generation of video platforms.* > > *We are defining the future of the internet video, and perhaps you can > help us with that :)* > > *For our team in sunny Madrid, we are looking for engineers:* > *+ proficient in any OO programming languages (preferably Python or other > dynamic languages)* > *+ capable of working full-stack and understanding the whole lifecycle of > the products they build* > *+ experienced in large scale data storage and asynchronous processing* > *+ embracing good technical practices and principles (SOLID, YAGNI, DRY)* > *+ understanding the modern software development processes (CD, CI, TDD)* > > *It will be considered a great plus to have or at least eager to learn:* > *+ Big Data, analytics* > *+ Microservices and distributed computing* > *+ Cloud and SAAS systems* > *+ Lean / Agile way of thinking"* > > Podeis echar un ojo al equipo actual en LinkedIn: > https://www.linkedin.com/vsearch/p?f_CC=10276075. > > Acabo indicando que el inglés está en nuestro a día; somos remote friendly > y tenemos gente en Israel y Polonia. > Interesante reto y con algunos nombres conocidos de esta lista o de los meetups de Python Madrid. Preguntas de rigor: -Rango salarial (aparte de la valía del candidato). -Otros beneficios sociales (vacaciones, horarios, formación,...) Saludos y suerte con la búsqueda. > > Saludos, > > -- César > > PD: No puedo indicar nada sobre el aspecto económico. Pero no pagamos > 'peanuts' > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://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: