Re: [Python-es] "framework" web, escrita en python, para organizar conferencias
Estuve buscando aplicaciones similares hace un año, esta es una de las pocas que encontré: https://launchpad.net/django-conference No puedo decirte si cumple tus requisitos porque no llegué a evaluarlo. Comenta en la lista lo que vayas encontrando, sigo interesado en el tema. También recuerdo que alguien había escrito/adaptado software para la organización de las PyCon, pero no recuerdo más al respecto. -- ## ### Jordi Funollet ### http://www.terraquis.net ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] "framework" web, escrita en python, para organizar conferencias
ig., 2010.eko mairen 09a 18:43(e)an, Jose Caballero(e)k idatzi zuen: ¿Alguien conoce alguna herramienta escrita en python que cumpla con estos requisitos? Buscando en google un poco he encontrado varios productos, pero son todos ellos soluciones comerciales, no "open source". El CERN tiene una herramienta de este tipo llamada Indico: http://cdsware.cern.ch/indico/ Está escrita en python pero no sé si utiliza un framework en concreto. Mikel -- Mikel Larreategi [email protected] CodeSyntax Azitaingo Industrialdea 3 K E-20600 Eibar Tel: (+34) 943 82 17 80 ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] "framework" web, escrita en python, para organizar conferencias
On May 10, 2010, at 6:58, Mikel Larreategi wrote: ig., 2010.eko mairen 09a 18:43(e)an, Jose Caballero(e)k idatzi zuen: ¿Alguien conoce alguna herramienta escrita en python que cumpla con estos requisitos? Buscando en google un poco he encontrado varios productos, pero son todos ellos soluciones comerciales, no "open source". El CERN tiene una herramienta de este tipo llamada Indico: http://cdsware.cern.ch/indico/ Conozco INDICO desde hace tiempo, y no me gusta nada. Es un infierno crear una agenda. Y las búsquedas son muy limitadas. Precisamente lo que busco es una alternativa a INDICO. Pero gracias de todos modos por la sugerencia. Jose ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] exec seguro
Narcis Garcia - GiLUG escribió: Quizás pueda establecer un diccionario de funciones y operadores admisibles, y antes de ejecutar la expresión analizar si todas las palabras de la cadena estan en el diccionario. No quisiera establecer tanta limitación, quiero dejar que en el codigo a ejecutar se puedan crear variables o funciones auxiliares si son necesarias. Saludos, -- Oswaldo Hernández ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] exec seguro
Hernan Foffani escribió:
El 07/05/2010, a las 21:27, Oswaldo Hernández escribió:
Reynaldo Baquerizo escribió:
En definitiva, ¿Qué es lo que quieres evitar? Hay cosas muy dañinas
que un usuario tontorrón puede hacer y que son muy difíciles de
detener ("while 1: pass")
algunas ideas puedes sacar de esta receta
http://code.activestate.com/recipes/496746-restricted-safe-eval/
La he estado viendo y creo que puedo sacar cosas muy interesantes, el exec lo
realiza en un thread para controlar el timeout, y me llama la atencion
especialmente el uso que hace de los módulos 'inspect' y 'compiler' para
analizar el codigo a ejecutar.
Python no deja de sorprenderme :)
Lee los comentarios; verás que hay varias situaciones que no están contempladas.
Mientras el entorno restringido no sea oficial, es decir, que está bien
integrado al intérprete y bendecido por GvR y amigos tendrás unos cuantos
agujeros y lo que es peor, una falsa sensación de seguridad.
Dicho de otro modo, conmigo o van todos desarmados o portando armas de fuego.
En este último caso, yo me quedo a kilómetros de distancia. El arco y flecha da
muchos dolores de cabeza: pierdes un montón de tiempo enseñando a los usuarios
a usarlo, se quejan de que no les sirve para cazar rinocerontes y hagas lo
hagas terminas recibiendo una flecha en el culo.
Hola,
Despues de trabajar un poco en esto, he sacado las siguientes conclusiones:
- El problema de los bucles infinitos se soluciona con la ejecución en
un thread con un timeout. En las pruebas realizadas ha funcionado.
- Los problemas de las operaciones matemáticas complejas, como indican
en los comentarios, y un crash por consumo excesivo de memoria, tienen
mala solución. Pueden colgar, o aparentar que se cuelga la aplicación.
Con este tendré que convivir y generar logs para detectar el problema a
posteriori.
- Sobre el entorno seguro, la verdad es que de seguro no tiene mucho,
puedes modificar atributos de clase, etc. Pero por lo que he estado
investigando y probando todo se hace accediendo a las propiedades
__class__, __file__, etc. de los objetos que se le pasan al entorno.
Segun esto se puede analizar fácilmente el código antes de ejecutar e
impedir la ejecución si contiene '__'.
En cuanto a los minilenguajes fué mi primera intención, pero no
encontré, o no supe buscar, nada que me satisfaciera.
Aunque siempre hablo de "usuario" realmente son personas confiables, es
una aplicación de escritorio por lo que tampoco hay un acceso
generalizado, pero siempre puede aparecer in listillo.
Creo que con lo mencionado obtengo un entorno fácil de implementar y
razonablemente seguro.
Saludos,
--
Oswaldo Hernández
___
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] posicionamiento de elementos con wxpython
[email protected] escribió: Buenas. Javier, ¿Te acuerdas que pedí información sobre cómo desarrollar software accesible para personas invidentes? Pues bien, yo estoy en ese grupo como deficiente visual, por lo que un entorno gráfico va a ser casi inaccesible. v. Estudio .net es accesible, porque hay scripts para ello, pero no así Glade y otros entornos. Hola, Te adjunto un ejemplo de Frame montado con sizers para ajustar los controles que envié a la lista hará un mes a otro compañero. Para que compruebes la facilidad de ajustar la fuente a la totalidad del Frame (me imagino que lo de la accesibilidad va por ahi), verás que al establecer una fuente al inicio de la declaración todos los objetos que crees a partir de ese momento heredan esta fuente. Saludos, -- Oswaldo Hernández #!/usr/bin/env python #coding=utf-8 import wx class mFrame(wx.Frame): def __init__(self, parent, id, *args, **kwds): wx.Frame.__init__(self, parent, id, *args, **kwds) self.SetTitle("Ejemplo") # Asignar Font f = self.GetFont() f.SetPointSize(18) self.SetFont(f) # Fondo del Frame y Sizer principal fondo = wx.Panel(self, -1) szFondo = wx.BoxSizer(wx.VERTICAL) fondo.SetSizer(szFondo) # Cabecera de Frame cabecera = wx.StaticText(fondo, -1, "Formulario de entrada de datos") f = cabecera.GetFont() f.SetWeight(wx.FONTWEIGHT_BOLD) cabecera.SetFont(f) szFondo.Add(cabecera, 0, wx.ALL, 3) # Datos - Sizer szData = wx.FlexGridSizer(-1, 2, 3, 3) szData.AddGrowableCol(1) szFondo.Add(szData, 2, wx.EXPAND|wx.ALL, 3) # Datos - Controles szData.Add(wx.StaticText(fondo, -1, "Nombre:")) self.Nombre = wx.TextCtrl(fondo, -1) szData.Add(self.Nombre, 0, wx.EXPAND) szData.Add(wx.StaticText(fondo, -1, "Otros datos:")) self.OtrosDatos = wx.TextCtrl(fondo, -1, style=wx.TE_MULTILINE) szData.Add(self.OtrosDatos, 2, wx.EXPAND) szData.AddGrowableRow(1) # Botones - Sizer szBtn = wx.BoxSizer(wx.HORIZONTAL) szFondo.Add(szBtn, 0, wx.ALIGN_RIGHT) # Botones - Controles BtnAceptar = wx.Button(fondo, -1, "Aceptar") szBtn.Add(BtnAceptar, 0, wx.ALL, 3) BtnCancelar = wx.Button(fondo, -1, "Cancelar") szBtn.Add(BtnCancelar, 0, wx.ALL, 3) # Captura de Eventos BtnAceptar.Bind(wx.EVT_BUTTON, self.OnAceptar) BtnCancelar.Bind(wx.EVT_BUTTON, self.OnCancelar) # MinSize y Layout self.SetMinSize(wx.Size(400, 300)) self.Fit() self.Layout() def OnAceptar(self, evt): print "Aceptado" print "Nombre:", self.Nombre.GetValue() print "Otros Datos:", self.OtrosDatos.GetValue() self.Close() evt.Skip() def OnCancelar(self, evt): print "Cancelado" self.Close() evt.Skip() # Test if __name__ == "__main__": app = wx.PySimpleApp() f = mFrame(None, -1) f.Show(True) app.MainLoop() ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] Sugerencias para implementar servicio web
Que tal, antes que todo un saludo. Estoy desarrollando una aplicación de punto de venta para un tienda con varias sucursales. La idea es que desde cada tienda se pueda consultar el inventario de las demas sucursales. Estoy pensando en concentrar la informacion de todas las tiendas en un servidor con MySQL donde ya tengo desarrollada (en parte) una aplicacion en Django para las consultas. Mi duda es, ¿cual creen que seria la mejor opción para realizar las consultas al servidor? ¿y en qué formato transmitir los datos? Pensaba en usar GIO para realizar las consultas, pero no lo he probado, sólo he visto ejemplos. Y la información no sé si generarla en XML o en otro formato. Cualquier sugerencia es bien recibida. De antemano muchas gracias -- Erich Cordoba ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] exec seguro
Bueno, puedes obligar a que el nombre de las variables empiecen por un prefijo común como "variable_", y así pueden ser la excepción del diccionario. En/na Oswaldo Hernández ha escrit: Narcis Garcia - GiLUG escribió: Quizás pueda establecer un diccionario de funciones y operadores admisibles, y antes de ejecutar la expresión analizar si todas las palabras de la cadena estan en el diccionario. No quisiera establecer tanta limitación, quiero dejar que en el codigo a ejecutar se puedan crear variables o funciones auxiliares si son necesarias. Saludos, ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] "framework" web, escrita en python, para organizar conferencias
2010/5/10 Jordi Funollet : > También recuerdo que alguien había escrito/adaptado software para la > organización de las PyCon, pero no recuerdo más al respecto. Me interesó el tema así que encontré algo sobre PyCon-Tech https://pycon.coderanger.net/ Una página de ejemplo: http://ar.pycon.org/ Saludos -- Javier A. Rovegno Campos http://www.cec.uchile.cl/~jrovegno/ Linux User #419384 PGP key 1024D/C14716CC 2006-09-02 Ubuntero Ubuntu-cl Hydraulic Engineering Student - UdeChile - Chile ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] posicionamiento de elementos con wxpython
No, en absoluto me he molestado, sé que no lo sabías. Gracias, echaré un vistazo a ver si saco alguna conclusión en claro. saludos Rafa -- From: "Javier Castrillo" Sent: Sunday, May 09, 2010 11:03 PM To: "La lista de python en castellano" Subject: Re: [Python-es] posicionamiento de elementos con wxpython 2010/5/9 : Javier, ¿Te acuerdas que pedí información sobre cómo desarrollar software accesible para personas invidentes? Pues bien, yo estoy en ese grupo como deficiente visual, por lo que un entorno gráfico va a ser casi inaccesible. v. Estudio .net es accesible, porque hay scripts para ello, pero no así Glade y otros entornos. Obviamente no lo recordaba, y por eso apoyé la respuesta que te dió el compañero Juan. A lo mejor si hubieras aclarado el porqué de tu necesidad de escribir el código, mi respuesta hubiera sido otra, como por ejemplo seguir el tutorial que se encuentra en: http://www.zetcode.com/wxpython/layout/ O tal vez a algún compañero se programador le agarra la iniciativa de desarrollar esos mismos scripts que decís que están en VB, pero para wxGlade. Saludos, sé que entendés que no fue mala intención de mi parte, si en algo te he ofendido, te pido disculpas. -- Javier Castrillo = GNU / Linux User #242275 Jabber: [email protected] Blog: http://blog.javier.org.ar Site:http://carapa.com.ar TCOS: http://argentina.tcosproject.org = Usá Software Libre ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] posicionamiento de elementos con wxpython
Gracias, estudiaré el código. Saludos Rafa -- From: "Narcis Garcia - GiLUG" Sent: Sunday, May 09, 2010 10:05 PM To: "La lista de python en castellano" Subject: Re: [Python-es] posicionamiento de elementos con wxpython - La disposición de una serie de controles yo la establezco con un bucle (for ControlActual in Controles), que vaya incrementando una variable PosX o PosY sumándole por ejemplo 10 + la medida del control colocado: MiControl.GetSize().GetHeight() - Para adaptar al tamaño de la ventana supongo que hay que medirla (GetSize?) y entonces dividir el espacio entre controles y separaciones de margen. Si esto hay que rehacerlo cuando el usuario estira el tamaño de la ventana, supongo que hay que interceptar tal evento con el objeto Frame. En/na [email protected] ha escrit: Buenas. Abajo le hes puesto un código que estoy usando para probar. No consigo dar con la clave para lo siguiente: 1. Colocar los controles dentro de un boxSizer en vertical. 2. Que los controles se adapten al tamaño de la ventana 3. que los controles ocupen todo el espacio disponible para ellos 4. Alinear los controles dentro del espacio asignado donde quiera. He mirado en la documentación de wxpython y he probado con los valores posibles, pero, o no me entero bien, o he sido incapaz de configurarlo, o no he entendido bien como funciona el boxSizer. Les agradecería su ayuda. #!/usr/bin/python try: import wx except ImportError: raise ImportError,"Se requiere el modulo wxPython" class View(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(800, 600)) self.parent = parent self.Centre() self.initialize() self.Show(True) def initialize(self): self.panel = wx.Panel(self, -1) box = wx.BoxSizer(wx.VERTICAL) self.entrada = wx.TextCtrl(self.panel, -1, value=u"Ingrese un texto:", style=wx.TE_PROCESS_ENTER) box.Add(self.entrada, 0, wx.ADJUST_MINSIZE, 10) self.boton = wx.Button(self.panel, -1, label="Pulsame ahora mismo!") box.Add(self.boton, 0, wx.ADJUST_MINSIZE, 10) box.Fit(self.panel) if __name__ == "__main__": app = wx.App(False) view = View(None, -1, 'Ventana principal') app.MainLoop() Saludos Rafa ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] posicionamiento de elementos con wxpython
gracias, lo miraré a ver qué aprendo. con GTK es más fácil, al menos como sé hacerlo. saludos Rafa -- From: "Oswaldo Hernández" Sent: Monday, May 10, 2010 7:34 PM To: "La lista de python en castellano" Subject: Re: [Python-es] posicionamiento de elementos con wxpython [email protected] escribió: Buenas. Javier, ¿Te acuerdas que pedí información sobre cómo desarrollar software accesible para personas invidentes? Pues bien, yo estoy en ese grupo como deficiente visual, por lo que un entorno gráfico va a ser casi inaccesible. v. Estudio .net es accesible, porque hay scripts para ello, pero no así Glade y otros entornos. Hola, Te adjunto un ejemplo de Frame montado con sizers para ajustar los controles que envié a la lista hará un mes a otro compañero. Para que compruebes la facilidad de ajustar la fuente a la totalidad del Frame (me imagino que lo de la accesibilidad va por ahi), verás que al establecer una fuente al inicio de la declaración todos los objetos que crees a partir de ese momento heredan esta fuente. Saludos, -- Oswaldo Hernández #!/usr/bin/env python #coding=utf-8 import wx class mFrame(wx.Frame): def __init__(self, parent, id, *args, **kwds): wx.Frame.__init__(self, parent, id, *args, **kwds) self.SetTitle("Ejemplo") # Asignar Font f = self.GetFont() f.SetPointSize(18) self.SetFont(f) # Fondo del Frame y Sizer principal fondo = wx.Panel(self, -1) szFondo = wx.BoxSizer(wx.VERTICAL) fondo.SetSizer(szFondo) # Cabecera de Frame cabecera = wx.StaticText(fondo, -1, "Formulario de entrada de datos") f = cabecera.GetFont() f.SetWeight(wx.FONTWEIGHT_BOLD) cabecera.SetFont(f) szFondo.Add(cabecera, 0, wx.ALL, 3) # Datos - Sizer szData = wx.FlexGridSizer(-1, 2, 3, 3) szData.AddGrowableCol(1) szFondo.Add(szData, 2, wx.EXPAND|wx.ALL, 3) # Datos - Controles szData.Add(wx.StaticText(fondo, -1, "Nombre:")) self.Nombre = wx.TextCtrl(fondo, -1) szData.Add(self.Nombre, 0, wx.EXPAND) szData.Add(wx.StaticText(fondo, -1, "Otros datos:")) self.OtrosDatos = wx.TextCtrl(fondo, -1, style=wx.TE_MULTILINE) szData.Add(self.OtrosDatos, 2, wx.EXPAND) szData.AddGrowableRow(1) # Botones - Sizer szBtn = wx.BoxSizer(wx.HORIZONTAL) szFondo.Add(szBtn, 0, wx.ALIGN_RIGHT) # Botones - Controles BtnAceptar = wx.Button(fondo, -1, "Aceptar") szBtn.Add(BtnAceptar, 0, wx.ALL, 3) BtnCancelar = wx.Button(fondo, -1, "Cancelar") szBtn.Add(BtnCancelar, 0, wx.ALL, 3) # Captura de Eventos BtnAceptar.Bind(wx.EVT_BUTTON, self.OnAceptar) BtnCancelar.Bind(wx.EVT_BUTTON, self.OnCancelar) # MinSize y Layout self.SetMinSize(wx.Size(400, 300)) self.Fit() self.Layout() def OnAceptar(self, evt): print "Aceptado" print "Nombre:", self.Nombre.GetValue() print "Otros Datos:", self.OtrosDatos.GetValue() self.Close() evt.Skip() def OnCancelar(self, evt): print "Cancelado" self.Close() evt.Skip() # Test if __name__ == "__main__": app = wx.PySimpleApp() f = mFrame(None, -1) f.Show(True) app.MainLoop() ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
