[Python-es] Chequear código python
Hola a todos. Estoy haciendo una aplicación web donde los usuarios suben un código python. La he integrado con pylint para chequear la syntaxis. Pero me gustaría chequear otras propiedades del código, aparte de ésta. Me explico, quiero que el código de los usuarios sea una clase que herede de otra y que los usuarios implementen una serie de métodos. Un ejemplo sería algo así. import MegaClase class MyClase(MegaClase): def megaclase_method1(self): print pepe def megaclase_method2(self): return 1 + 2 def myclase_method(self): return dooo ¿como prodía chequear que la clase que sube el usuario hereda de MegaClase e implementa una serie de métodos? Gracias. --- *Benito Rodriguez Arcos* ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Chequear código python
Para saber si una clase hereda de otra, lo puedes averiguar con issubclass ( http://docs.python.org/2/library/functions.html#issubclass). if issubclass(MyClase, MegaClase): # codigo si se cumple Y luego para que deban reimplementar los métodos podrias hacer algo así: class MegaClase(objetc): def metodo_1(self): raise Exception(Debes de re-definir el metodo_1.) def metodo_2(self): raise Exception(Debes de re-definir el metodo_2.) O importando inspect y obteniendo el listado de los members inspect.getmembers(MyClase, predicate=inspect.ismethod) Te devolverá una lista. Lo puedes ver aquí: http://docs.python.org/2/library/inspect.html#inspect.getmembers Un Saludo. El 17 de noviembre de 2012 13:57, Benito Rodríguez Arcos brar...@gmail.comescribió: Hola a todos. Estoy haciendo una aplicación web donde los usuarios suben un código python. La he integrado con pylint para chequear la syntaxis. Pero me gustaría chequear otras propiedades del código, aparte de ésta. Me explico, quiero que el código de los usuarios sea una clase que herede de otra y que los usuarios implementen una serie de métodos. Un ejemplo sería algo así. import MegaClase class MyClase(MegaClase): def megaclase_method1(self): print pepe def megaclase_method2(self): return 1 + 2 def myclase_method(self): return dooo ¿como prodía chequear que la clase que sube el usuario hereda de MegaClase e implementa una serie de métodos? Gracias. --- *Benito Rodriguez Arcos* ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Chequear código python
El 17/11/2012 14:11, Quique Porta quiquepo...@gmail.com escribió: Para saber si una clase hereda de otra, lo puedes averiguar con issubclass (http://docs.python.org/2/library/functions.html#issubclass). if issubclass(MyClase, MegaClase): # codigo si se cumple Y luego para que deban reimplementar los métodos podrias hacer algo así: class MegaClase(objetc): def metodo_1(self): raise Exception(Debes de re-definir el metodo_1.) def metodo_2(self): raise Exception(Debes de re-definir el metodo_2.) O importando inspect y obteniendo el listado de los members inspect.getmembers(MyClase, predicate=inspect.ismethod) Te devolverá una lista. Lo puedes ver aquí: http://docs.python.org/2/library/inspect.html#inspect.getmembers Un Saludo. Supongo que esto valdría, pero tendría que ejecutar el código que suben los usuarios a la web El 17 de noviembre de 2012 13:57, Benito Rodríguez Arcos brar...@gmail.com escribió: Hola a todos. Estoy haciendo una aplicación web donde los usuarios suben un código python. La he integrado con pylint para chequear la syntaxis. Pero me gustaría chequear otras propiedades del código, aparte de ésta. Me explico, quiero que el código de los usuarios sea una clase que herede de otra y que los usuarios implementen una serie de métodos. Un ejemplo sería algo así. import MegaClase class MyClase(MegaClase): def megaclase_method1(self): print pepe def megaclase_method2(self): return 1 + 2 def myclase_method(self): return dooo ¿como prodía chequear que la clase que sube el usuario hereda de MegaClase e implementa una serie de métodos? Gracias. --- *Benito Rodriguez Arcos* ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Chequear código python
Hombre, podrías hacer que el objeto fuera serializable. Mirate esta doc. http://docs.python.org/2/library/pickle.html O busca por google articulos sobre python serialization. ;) El 17 de noviembre de 2012 15:09, Benito Rodríguez Arcos brar...@gmail.comescribió: El 17/11/2012 14:11, Quique Porta quiquepo...@gmail.com escribió: Para saber si una clase hereda de otra, lo puedes averiguar con issubclass (http://docs.python.org/2/library/functions.html#issubclass). if issubclass(MyClase, MegaClase): # codigo si se cumple Y luego para que deban reimplementar los métodos podrias hacer algo así: class MegaClase(objetc): def metodo_1(self): raise Exception(Debes de re-definir el metodo_1.) def metodo_2(self): raise Exception(Debes de re-definir el metodo_2.) O importando inspect y obteniendo el listado de los members inspect.getmembers(MyClase, predicate=inspect.ismethod) Te devolverá una lista. Lo puedes ver aquí: http://docs.python.org/2/library/inspect.html#inspect.getmembers Un Saludo. Supongo que esto valdría, pero tendría que ejecutar el código que suben los usuarios a la web El 17 de noviembre de 2012 13:57, Benito Rodríguez Arcos brar...@gmail.com escribió: Hola a todos. Estoy haciendo una aplicación web donde los usuarios suben un código python. La he integrado con pylint para chequear la syntaxis. Pero me gustaría chequear otras propiedades del código, aparte de ésta. Me explico, quiero que el código de los usuarios sea una clase que herede de otra y que los usuarios implementen una serie de métodos. Un ejemplo sería algo así. import MegaClase class MyClase(MegaClase): def megaclase_method1(self): print pepe def megaclase_method2(self): return 1 + 2 def myclase_method(self): return dooo ¿como prodía chequear que la clase que sube el usuario hereda de MegaClase e implementa una serie de métodos? Gracias. --- *Benito Rodriguez Arcos* ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Chequear código python
2012/11/17 Benito Rodríguez Arcos brar...@gmail.com Supongo que esto valdría, pero tendría que ejecutar el código que suben los usuarios a la web Si no quieres ejecutarlo, la opción de las expresiones regulares es la tuya. Eso sí, tendrías que comprobar que tus usuarios no han sido pérfidos y la han redefinido en otro sitio. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Chequear código python
2012/11/17 Daπid davidmen...@gmail.com 2012/11/17 Benito Rodríguez Arcos brar...@gmail.com Supongo que esto valdría, pero tendría que ejecutar el código que suben los usuarios a la web Si no quieres ejecutarlo, la opción de las expresiones regulares es la tuya. Eso sí, tendrías que comprobar que tus usuarios no han sido pérfidos y la han redefinido en otro sitio. Dios, parseando código Python con expresiones regulares, qué dolor de hígado me está entrando... ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Chequear código python
El 17/11/2012 13:57, Benito Rodríguez Arcos escribió: Hola a todos. Estoy haciendo una aplicación web donde los usuarios suben un código python. La he integrado con pylint para chequear la syntaxis. Pero me gustaría chequear otras propiedades del código, aparte de ésta. Me explico, quiero que el código de los usuarios sea una clase que herede de otra y que los usuarios implementen una serie de métodos. Un ejemplo sería algo así. import MegaClase class MyClase(MegaClase): def megaclase_method1(self): print pepe def megaclase_method2(self): return 1 + 2 def myclase_method(self): return dooo ¿como prodía chequear que la clase que sube el usuario hereda de MegaClase e implementa una serie de métodos? Dale una miradita al modulo inspect, creo que te puede ayudar bastante en lo que quieres. -- Oswaldo ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] py2exe y Base Datos sqlite
2012/11/16 Pavel Daniel Lopez Castillo pdlo...@sc.uci.cu: Mario lo que quiero es que mi aplicacion sea portable si lo hago con postgres o mysqlite tendria que tener un servidor de postgres o mysql corriendo en la maquina en la cual este trabajando con la aplicacion, yo no trabajo con varios clientes conectados a la misma DB, no se si esa respuesta era para mi o te equivocaste de mensaje, por si acaso ya le puse asunto a mi correo que en el primero se me olvido, asi no se pierde el hilo Este es mi problema: Tengo una aplicacion hecha en python que utiliza una base de datos en SQLite, el problema es que cuando creo el archivo .exe tendria que tener el ejecutable en la misma direccion que el archivo principal por que sino se pierde a la hora de econtrar la direccion del archivo .sqlite, por lo que si copio el .exe en otra maquina u otro directorio ya no me funciona, alguna idea de como resolver este problema. Copia el archivo de la base de datos junto con el exe. self.conn = sqlite3.connect( 'D:/charada/src/Datos/charada.sqlite') Usa una ruta relativa self.conn = sqlite3.connect( 'charada.sqlite') Saludos -- A menudo unas pocas horas de Prueba y error podrán ahorrarte minutos de leer manuales. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/