Re: [Python-es] Aplicación escritorio para windows

2012-10-05 Por tema Francisco Moreno
Yo he hecho algunas aplicaciones visuales en Windows con Python y he usado
Glade para generar las interfaces y py2exe para crear la aplicación windows
con sus dependencias y todo. No es complicado aunque tampoco es un
VisualBasic.

Un saludo.

El 22 de septiembre de 2012 13:52, RadicalEd
escribió:

> Para wxPython existe uno bueno llamado VisualWX
>
> El 22/09/2012 1:42, "Alexandro Colorado"  escribió:
>
>
> Hola,
> estas haciendo preguntas diferentes. Una cosa es hacer herramientas
> visuales para windows.
>
> Otra cosa es tener un diseñador visual para estas herramientas.
>
> Las herramientas visuales para windows pueden ser hechas con Python y
> algun toolkit que tenga compatibilidad en windows como lo es:
> - Tk http://i1-win.softpedia-static.com/screenshots/Trebuchet-Tk_1.png
> - Gtk  http://www.emcken.dk/screenshots/GTK%20i%20windows.jpg
> - Qt4 http://sourceforge.net/projects/ncreport/screenshots/107225
> - WxWidgets http://www.wxwidgets.org/images/screens/gamedevelop_win.jpg
>
> Estos toolkits corren en windows como podras ver en las imagenes. Sin
> embargo la programación es hecha dentro del codigo.
>
> El diseñador grafico es algo diferente el cual usualmente es un
> programa dedicado a dibujar la interfaz. El diseñador para el toolkit
> es algo que parece que es lo que estas buscando. No todos los toolkits
> tienen un diseñado. La forma mas tradicional es que el diseñador
> genera un XML copuesto de los componentes del toolkit y el codigo coje
> estos elementos para hacer el rendering de instrucciones.
>
> http://doc.qt.digia.com/4.7-snapshot/designer-manual.html
>
> GTK usa Glade, TK y wxWidgets ignoro si tienen un diseñador o varios.
> Tambien no se haya un diseñador universal que aplique una conversion a
> todos los toolkits.
>
>
> On 9/22/12, kausdiv  wrote:
> > Hola de nuevo.
> >
> > No consigo encontrar un sistema...
>
> --
> Alexandro Colorado
> PPMC Apache OpenOffice
> http://es.openoffice.org
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://m...
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Francisco Moreno
___
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] Aplicación escritorio para windows

2012-10-05 Por tema Jean Carlos Rodrìguez
Yo utilizo GUI2EXE y va muy bien, te anexo el link
http://code.google.com/p/gui2exe/




 De: Francisco Moreno 
Para: La lista de python en castellano  
Enviado: Viernes, 5 de octubre, 2012 8:19 A.M.
Asunto: Re: [Python-es] Aplicación escritorio para windows
 

Yo he hecho algunas aplicaciones visuales en Windows con Python y he usado 
Glade para generar las interfaces y py2exe para crear la aplicación windows con 
sus dependencias y todo. No es complicado aunque tampoco es un VisualBasic.

Un saludo.


El 22 de septiembre de 2012 13:52, RadicalEd  
escribió:

Para wxPython existe uno bueno llamado VisualWX
>El 22/09/2012 1:42, "Alexandro Colorado"  escribió:
>>
>>
>>Hola,
>>estas haciendo preguntas diferentes. Una cosa es hacer herramientas
>>visuales para windows.
>>
>>Otra cosa es tener un diseñador visual para estas herramientas.
>>
>>Las herramientas visuales para windows pueden ser hechas con Python y
>>algun toolkit que tenga compatibilidad en windows como lo es:
>>- Tk http://i1-win.softpedia-static.com/screenshots/Trebuchet-Tk_1.png
>>- Gtk  http://www.emcken.dk/screenshots/GTK%20i%20windows.jpg
>>- Qt4 http://sourceforge.net/projects/ncreport/screenshots/107225
>>- WxWidgets http://www.wxwidgets.org/images/screens/gamedevelop_win.jpg
>>
>>Estos toolkits corren en windows como podras ver en las imagenes. Sin
>>embargo la programación es hecha dentro del codigo.
>>
>>El diseñador grafico es algo diferente el cual usualmente es un
>>programa dedicado a dibujar la interfaz. El diseñador para el toolkit
>>es algo que parece que es lo que estas buscando. No todos los toolkits
>>tienen un diseñado. La forma mas tradicional es que el diseñador
>>genera un XML copuesto de los componentes del toolkit y el codigo coje
>>estos elementos para hacer el rendering de instrucciones.
>>
>>http://doc.qt.digia.com/4.7-snapshot/designer-manual.html
>>
>>GTK usa Glade, TK y wxWidgets ignoro si tienen un diseñador o varios.
>>Tambien no se haya un diseñador universal que aplique una conversion a
>>todos los toolkits.
>>
>>
>>On 9/22/12, kausdiv  wrote:
>>> Hola de nuevo.
>>>
>>> No consigo encontrar un sistema...
>>--
>>Alexandro Colorado
>>PPMC Apache OpenOffice
>>http://es.openoffice.org
>>
>>___
>>Python-es mailing list
>>Python-es@python.org
>>http://m...
>___
>Python-es mailing list
>Python-es@python.org
>http://mail.python.org/mailman/listinfo/python-es
>FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Francisco Moreno

___
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] Variables wxpython

2012-10-05 Por tema Gonzalo Mouriÿfffffffffff1o Pardo
Buenas llevo mas o menos 2 semanas aprendiendo a programar en python, y me 
encuentro en una encrucijada.
Necesito sacar información de Ventana_New (tc1) y llevarlo al Ventana.SetTitle, 
no se como podría hacerlo, gracias.
Ahí va mi código:

import wx

class Aplicacion(wx.App):

    def OnInit(self):
        self.frame = Ventana(None, -1, title = "Control Horario")
        self.SetTopWindow(self.frame)
        self.frame.Show()
        return True

class Ventana(wx.Frame):
    
    def __init__(self, parent, id, title):

        super(Ventana, self).__init__(parent, id, title, size = (800, 275))
panel = wx.Panel(self)

menubar = wx.MenuBar()
arcm = wx.Menu()
        anmi = wx.MenuItem(arcm, ID_NUEVO, "&Nuevo\tCtrl+N")
        arcm.AppendItem(anmi)
        menubar.Append(arcm, '&Archivo')
        self.SetMenuBar(menubar)
        self.Bind(wx.EVT_MENU, self.OnMenu)

    def OnMenu(self, event):
 evt_id = event.GetId () 
 if evt_id == ID_NUEVO: 
     self.frame = Ventana_New(None, -1, title = "Nuevo Usuario") 

class Ventana_New(wx.Frame):
    
    def __init__(self, parent, id, title):

        self.padre = parent
        wx.Frame.__init__(self, parent, id, title, size = (295, 357))
        self.panel = Panel_New(self)
        self.Show(True)

class Panel_New(wx.Panel):

    def __init__(self, parent, *args, **kwargs):

        self.padre = parent
        wx.Panel.__init__(self, parent, *args, **kwargs)
        gs = wx.FlexGridSizer(3, 2, 9, 9)
        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox = wx.BoxSizer(wx.HORIZONTAL)
        nombre = wx.StaticText(self, -1, "Nombre:")
        self.tc1 = wx.TextCtrl(self, -1, size = (150, -1))
gs.AddMany([(nombre), (self.tc1, 1, wx.LEFT, 10)]

        self.btn = wx.Button(self, -1, 'Aceptar', size = (-1, 30))
        hbox.Add(self.btn)
        vbox.Add(hbox, 0, wx.ALIGN_CENTER | wx.BOTTOM, 10)
        self.Bind(wx.EVT_BUTTON, self.OnAceptar, id = self.btn.GetId())
        self.SetSizer(vbox)

    def OnAceptar(self, event):
        padre = self.GetParent()

        padre.Close(True)
___
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] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema Jose Caballero
Hola,



pido disculpas por adelantado por lo criptico del "subject". Intentare
explicar mejor lo que quiero hacer.
Quiero crear una clase Container que contiene una lista de objetos de una
clase X arbitraria.


--
class Container:
def __init__(self, list_obj):
self.list_obj = list_obj

class X:
blah

x1 = X()
x2 = X()
x3 = X()

container = Container( [ x1, x2, x3] )
--


Me gustaria poder llamar a un metodo cualquiera en Container, y que
internamente haga un loop de llamadas a ese mismo metodo para todos los
objectos de la lista.
Por ejemplo, si hago

container.f()

que internamente se haga un loop de llamadas:

x1.f()
x2.f()
x3.f()


Lo mas cerca que estoy de conseguirlo es con lo siguiente:


--
class Container:
   ...
   ...
   def __getattr__(self, atr):
outs = []
for o in self.list_obj:
out = getattr(o, atr)()
outs.append(out)
return outs
--


con ese codigo puedo hacer

container.f
container.g
container.h

pero no

container.f()
container.g()
container.h()


Sigo investigando, pero si mientras tanto alguien me ofrece una pista, sera
mas que bienvenida.


Saludos cordiales,
Jose
P.S. perdon por la ausencia de tildes.
___
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] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema Alvaro Manrique
Para hacer dinámico lo quieres mi opción es que crees el atributo en la
clase container con setattr() y luego asignar a este nuevo atributo el
objeto que necesitas, bien sea una clase o un atributo de ella.
 El 05/10/2012 11:13, "Jose Caballero"  escribió:

> Hola,
>
>
>
> pido disculpas por adelantado por lo criptico del "subject". Intentare
> explicar mejor lo que quiero hacer.
> Quiero crear una clase Container que contiene una lista de objetos de una
> clase X arbitraria.
>
>
>
> --
> class Container:
> def __init__(self, list_obj):
> self.list_obj = list_obj
>
> class X:
> blah
>
> x1 = X()
> x2 = X()
> x3 = X()
>
> container = Container( [ x1, x2, x3] )
>
> --
>
>
> Me gustaria poder llamar a un metodo cualquiera en Container, y que
> internamente haga un loop de llamadas a ese mismo metodo para todos los
> objectos de la lista.
> Por ejemplo, si hago
>
> container.f()
>
> que internamente se haga un loop de llamadas:
>
> x1.f()
> x2.f()
> x3.f()
>
>
> Lo mas cerca que estoy de conseguirlo es con lo siguiente:
>
>
>
> --
> class Container:
>...
>...
>def __getattr__(self, atr):
> outs = []
> for o in self.list_obj:
> out = getattr(o, atr)()
> outs.append(out)
> return outs
>
> --
>
>
> con ese codigo puedo hacer
>
> container.f
> container.g
> container.h
>
> pero no
>
> container.f()
> container.g()
> container.h()
>
>
> Sigo investigando, pero si mientras tanto alguien me ofrece una pista,
> sera mas que bienvenida.
>
>
> Saludos cordiales,
> Jose
> P.S. perdon por la ausencia de tildes.
>
>
>
>
>
>
> ___
> 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] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema Carlos Zuniga
2012/10/5 Jose Caballero :
> Hola,
>
>
>
> pido disculpas por adelantado por lo criptico del "subject". Intentare
> explicar mejor lo que quiero hacer.
> Quiero crear una clase Container que contiene una lista de objetos de una
> clase X arbitraria.
>
>
> --
> class Container:
> def __init__(self, list_obj):
> self.list_obj = list_obj
>
> class X:
> blah
>
> x1 = X()
> x2 = X()
> x3 = X()
>
> container = Container( [ x1, x2, x3] )
> --
>
>
> Me gustaria poder llamar a un metodo cualquiera en Container, y que
> internamente haga un loop de llamadas a ese mismo metodo para todos los
> objectos de la lista.
> Por ejemplo, si hago
>
> container.f()
>
> que internamente se haga un loop de llamadas:
>
> x1.f()
> x2.f()
> x3.f()
>
>
> Lo mas cerca que estoy de conseguirlo es con lo siguiente:
>
>
> --
> class Container:
>...
>...
>def __getattr__(self, atr):
> outs = []
> for o in self.list_obj:
> out = getattr(o, atr)()
> outs.append(out)
> return outs
> --
>
>
> con ese codigo puedo hacer
>
> container.f
> container.g
> container.h
>
> pero no
>
> container.f()
> container.g()
> container.h()
>
>
> Sigo investigando, pero si mientras tanto alguien me ofrece una pista, sera
> mas que bienvenida.

Tal vez algo como:

class Cont:
...
def __getattr__(self, atr):
def foo():
outs = []
for o in self.list_obj:
out = getattr(o, atr)()
outs.append(out)
return outs
   return foo


>
> Saludos cordiales,
> Jose
> P.S. perdon por la ausencia de tildes.

UTF existe, ya no es excusa ;-)

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/


Re: [Python-es] Variables wxpython

2012-10-05 Por tema Carlos Zuniga
On Fri, Oct 5, 2012 at 9:12 AM, Gonzalo Mouriÿfff1o Pardo
 wrote:
> Buenas llevo mas o menos 2 semanas aprendiendo a programar en python, y me
> encuentro en una encrucijada.
> Necesito sacar información de Ventana_New (tc1) y llevarlo al
> Ventana.SetTitle, no se como podría hacerlo, gracias.
> Ahí va mi código:
>
> import wx
>
> class Aplicacion(wx.App):
>
> def OnInit(self):
> self.frame = Ventana(None, -1, title = "Control Horario")
> self.SetTopWindow(self.frame)
> self.frame.Show()
> return True
>
> class Ventana(wx.Frame):
>
> def __init__(self, parent, id, title):
> super(Ventana, self).__init__(parent, id, title, size = (800, 275))
> panel = wx.Panel(self)
> menubar = wx.MenuBar()
> arcm = wx.Menu()
> anmi = wx.MenuItem(arcm, ID_NUEVO, "&Nuevo\tCtrl+N")
> arcm.AppendItem(anmi)
> menubar.Append(arcm, '&Archivo')
> self.SetMenuBar(menubar)
> self.Bind(wx.EVT_MENU, self.OnMenu)
>
> def OnMenu(self, event):
>  evt_id = event.GetId ()
>  if evt_id == ID_NUEVO:
>  self.frame = Ventana_New(None, -1, title = "Nuevo Usuario")
>
> class Ventana_New(wx.Frame):
>
> def __init__(self, parent, id, title):
> self.padre = parent
> wx.Frame.__init__(self, parent, id, title, size = (295, 357))
> self.panel = Panel_New(self)
> self.Show(True)
>
> class Panel_New(wx.Panel):
>
> def __init__(self, parent, *args, **kwargs):
> self.padre = parent
> wx.Panel.__init__(self, parent, *args, **kwargs)
> gs = wx.FlexGridSizer(3, 2, 9, 9)
> vbox = wx.BoxSizer(wx.VERTICAL)
> hbox = wx.BoxSizer(wx.HORIZONTAL)
> nombre = wx.StaticText(self, -1, "Nombre:")
> self.tc1 = wx.TextCtrl(self, -1, size = (150, -1))
> gs.AddMany([(nombre), (self.tc1, 1, wx.LEFT, 10)]
> self.btn = wx.Button(self, -1, 'Aceptar', size = (-1, 30))
> hbox.Add(self.btn)
> vbox.Add(hbox, 0, wx.ALIGN_CENTER | wx.BOTTOM, 10)
> self.Bind(wx.EVT_BUTTON, self.OnAceptar, id = self.btn.GetId())
> self.SetSizer(vbox)
>
> def OnAceptar(self, event):
> padre = self.GetParent()
> padre.Close(True)
>

Hola, tu ejemplo no corre así que no lo puedo probar... pero lo que
puedes hacer es añadir un evento close:

def OnMenu(self, event):
evt_id = event.GetId()
if evt_id == ID_NUEVO:
self.frame = Ventana_New(None, -1, title = "Nuevo Usuario")
self.frame.Bind(wx.EVT_CLOSE, self.OnCloseMenu)
self.frame.Show(True)

def OnCloseMenu(self, event):
print self.frame.panel.tc1.GetValue()
self.frame.Destroy()

También tendrías que chequear si solo se ha cerrado la ventana o se ha
presionado el boton Aceptar. Añade un atributo aceptado con valor
False a Ventana_New y lo cambias a True en OnAceptar. Luego en
OnCloseMenu chequeas `if self.frame.aceptado: ...`

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/


Re: [Python-es] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema G V
si no te molesta tocar un poco de programación funcional, lambdas y demas:

a = ['hola', 'adios']
map(lambda x:x.swapcase(), a)

esto da un resultado de:
['HOLA', 'ADIOS']

espero que te sirva para orientar lo que quieres hacer ;)

2012/10/5 Carlos Zuniga :
> 2012/10/5 Jose Caballero :
>> Hola,
>>
>>
>>
>> pido disculpas por adelantado por lo criptico del "subject". Intentare
>> explicar mejor lo que quiero hacer.
>> Quiero crear una clase Container que contiene una lista de objetos de una
>> clase X arbitraria.
>>
>>
>> --
>> class Container:
>> def __init__(self, list_obj):
>> self.list_obj = list_obj
>>
>> class X:
>> blah
>>
>> x1 = X()
>> x2 = X()
>> x3 = X()
>>
>> container = Container( [ x1, x2, x3] )
>> --
>>
>>
>> Me gustaria poder llamar a un metodo cualquiera en Container, y que
>> internamente haga un loop de llamadas a ese mismo metodo para todos los
>> objectos de la lista.
>> Por ejemplo, si hago
>>
>> container.f()
>>
>> que internamente se haga un loop de llamadas:
>>
>> x1.f()
>> x2.f()
>> x3.f()
>>
>>
>> Lo mas cerca que estoy de conseguirlo es con lo siguiente:
>>
>>
>> --
>> class Container:
>>...
>>...
>>def __getattr__(self, atr):
>> outs = []
>> for o in self.list_obj:
>> out = getattr(o, atr)()
>> outs.append(out)
>> return outs
>> --
>>
>>
>> con ese codigo puedo hacer
>>
>> container.f
>> container.g
>> container.h
>>
>> pero no
>>
>> container.f()
>> container.g()
>> container.h()
>>
>>
>> Sigo investigando, pero si mientras tanto alguien me ofrece una pista, sera
>> mas que bienvenida.
>
> Tal vez algo como:
>
> class Cont:
> ...
> def __getattr__(self, atr):
> def foo():
> outs = []
> for o in self.list_obj:
> out = getattr(o, atr)()
> outs.append(out)
> return outs
>return foo
>
>
>>
>> Saludos cordiales,
>> Jose
>> P.S. perdon por la ausencia de tildes.
>
> UTF existe, ya no es excusa ;-)
>
> 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/
___
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] Boa-constructor (no salen unas propiedades)

2012-10-05 Por tema luis-google
Buen día para todos:  resulta que estoy incursionando en python y 
comencé a trabajar con boa-constructor, estaba siguiendo el tutorial 
para crear la primera aplicación y cuando llegué a agregar el "status 
bar" me encontré con que en la guía dice que me debe aparecer '+++' en 
el campo fields, no me aparece nada y doy click y tampoco reacciona.  Si 
alguien quisiera echarme una mano se lo agradecería mucho.


att,

luis jaime
___
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] Aplicación escritorio para windows

2012-10-05 Por tema Alexandro Colorado
Seria interesante un tutorial de esto, supongo que mucha gente nueva a
python y que necesita trabajar en windows, le gustaria ver un ejemplo
de algun gui siendo compilado para su plataforma sobretodo si viene de
toolkits libres como GTK.

On 10/5/12, Jean Carlos Rodrìguez  wrote:
> Yo utilizo GUI2EXE y va muy bien, te anexo el link
> http://code.google.com/p/gui2exe/
>
>
>
> 
>  De: Francisco Moreno 
> Para: La lista de python en castellano 
> Enviado: Viernes, 5 de octubre, 2012 8:19 A.M.
> Asunto: Re: [Python-es] Aplicación escritorio para windows
>
>
> Yo he hecho algunas aplicaciones visuales en Windows con Python y he usado
> Glade para generar las interfaces y py2exe para crear la aplicación windows
> con sus dependencias y todo. No es complicado aunque tampoco es un
> VisualBasic.
>
> Un saludo.
>
>
> El 22 de septiembre de 2012 13:52, RadicalEd 
> escribió:
>
> Para wxPython existe uno bueno llamado VisualWX
>>El 22/09/2012 1:42, "Alexandro Colorado"  escribió:
>>>
>>>
>>>Hola,
>>>estas haciendo preguntas diferentes. Una cosa es hacer herramientas
>>>visuales para windows.
>>>
>>>Otra cosa es tener un diseñador visual para estas herramientas.
>>>
>>>Las herramientas visuales para windows pueden ser hechas con Python y
>>>algun toolkit que tenga compatibilidad en windows como lo es:
>>>- Tk http://i1-win.softpedia-static.com/screenshots/Trebuchet-Tk_1.png
>>>- Gtk  http://www.emcken.dk/screenshots/GTK%20i%20windows.jpg
>>>- Qt4 http://sourceforge.net/projects/ncreport/screenshots/107225
>>>- WxWidgets http://www.wxwidgets.org/images/screens/gamedevelop_win.jpg
>>>
>>>Estos toolkits corren en windows como podras ver en las imagenes. Sin
>>>embargo la programación es hecha dentro del codigo.
>>>
>>>El diseñador grafico es algo diferente el cual usualmente es un
>>>programa dedicado a dibujar la interfaz. El diseñador para el toolkit
>>>es algo que parece que es lo que estas buscando. No todos los toolkits
>>>tienen un diseñado. La forma mas tradicional es que el diseñador
>>>genera un XML copuesto de los componentes del toolkit y el codigo coje
>>>estos elementos para hacer el rendering de instrucciones.
>>>
>>>http://doc.qt.digia.com/4.7-snapshot/designer-manual.html
>>>
>>>GTK usa Glade, TK y wxWidgets ignoro si tienen un diseñador o varios.
>>>Tambien no se haya un diseñador universal que aplique una conversion a
>>>todos los toolkits.
>>>
>>>
>>>On 9/22/12, kausdiv  wrote:
 Hola de nuevo.

 No consigo encontrar un sistema...
>>>--
>>>Alexandro Colorado
>>>PPMC Apache OpenOffice
>>>http://es.openoffice.org
>>>
>>>___
>>>Python-es mailing list
>>>Python-es@python.org
>>>http://m...
>>___
>>Python-es mailing list
>>Python-es@python.org
>>http://mail.python.org/mailman/listinfo/python-es
>>FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
> --
> Francisco Moreno
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/


-- 
Alexandro Colorado
PPMC Apache OpenOffice
http://es.openoffice.org
___
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] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema Jose Caballero
>
> Tal vez algo como:
>
> class Cont:
> ...
> def __getattr__(self, atr):
> def foo():
> outs = []
> for o in self.list_obj:
> out = getattr(o, atr)()
> outs.append(out)
> return outs
>return foo
>
>
>
Funciona a la perfeccion. De esa forma se devuelve una funcion, y no el
resultado de la misma, y asi puedo hacer luego cont.f()
Muchas gracias !




>
> UTF existe, ya no es excusa ;-)
>


Vale. Ahora me toca googlear para intentar entender lo que eso significa y,
sobre todo, como me permite escribir con tildes en un teclado americano y
sin .Xmodmap.
___
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] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema Carlos Zuniga
2012/10/5 Jose Caballero :
>
>>
>>
>> UTF existe, ya no es excusa ;-)
>
>
>
> Vale. Ahora me toca googlear para intentar entender lo que eso significa y,
> sobre todo, como me permite escribir con tildes en un teclado americano y
> sin .Xmodmap.
>

setxkbmap -layout "us(intl)"

O en xorg.conf:

Section "InputDevice"
  ...
  Option "XkbLayout" "us"
  Option "XkbVariant" "intl"
EndSection

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/


Re: [Python-es] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema Jose Caballero




On Oct 5, 2012, at 15:49, Jose Caballero  wrote:

> 
> 
> Tal vez algo como:
> 
> class Cont:
> ...
> def __getattr__(self, atr):
> def foo():
> outs = []
> for o in self.list_obj:
> out = getattr(o, atr)()
> outs.append(out)
> return outs
>return foo
> 
> 
> 
> Funciona a la perfeccion. De esa forma se devuelve una funcion, y no el 
> resultado de la misma, y asi puedo hacer luego cont.f() 
> Muchas gracias !
> 
> 


Hmmm.
Ahora tengo que investigar qué hacer si quiero que alguno de los métodos acepte 
inputs.
Por ej: 

container.f(1, 2, 3)

Tengo que averiguar cómo pasar 1 2 3 a través de foo(). 
Imagino que haciendo algo tipo 

   def foo(*k, **kw):
   ...
   out = getatr(o, atr)(k, kw)
   ...



Jose
ahora en una máquina con tildes ;)___
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] encapsular llamadas a metodos arbitrarios desde una clase container

2012-10-05 Por tema Carlos Zuniga
2012/10/5 Jose Caballero :
> Hmmm.
> Ahora tengo que investigar qué hacer si quiero que alguno de los métodos
> acepte inputs.
> Por ej:
>
> container.f(1, 2, 3)
>
> Tengo que averiguar cómo pasar 1 2 3 a través de foo().
> Imagino que haciendo algo tipo
>
>def foo(*k, **kw):
>...
>out = getatr(o, atr)(k, kw)

Solo tienes que pasarle la expansión de argumentos a la función:

out = getatr(o, atr)(*k, **kw)

>
> Jose
> ahora en una máquina con tildes ;)

:)

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/


[Python-es] Saber si un modulo existe aunque contenga un error ImportError.

2012-10-05 Por tema Txema Vicente


Buenas.

Acabo de topar con un detalle que no se me ocurre como resolver. En 
resumen, quiero poder distinguir entre estas dos situaciones:


1.- Excepcion ImportError porque un modulo no existe.
2.- Excepcion ImportError porque el modulo existe pero al 
importarlo tiene un error dentro, del tipo ImportError


Ideas?


Detalles:

Estoy haciendo un toolkit en App Engine, y tengo un paquete "call" en el 
que voy metiendo modulos que se encargan de responder peticiones HTTP.


Básicamente si se llama a http://...//call/hello/world, se mira a ver si 
existe un modulo call.hello.world, y si es asi se importa y la respuesta 
la da su método main().

Si hay un error en el modulo, la respuesta es el traceback.
Si no existe el modulo, se va probando hacia arriba "call.hello" y 
finalmente call.main() dice que no tiene respuesta para esa ruta.


Esto es un trozo de la clase que hace esto:

@route(r'/pyojo/', "call")
class Command(Request):
def __module(self, command):
code = None
try:
module = import_call(command)
code = module.main(self)
except ImportError: pass  #< Problema si el modulo si que 
existe

except Exception:
code = Config.log_exception(command)
return code

Y esta es la funcion para importar, que funciona bien:

def import_call(name, module=".call"):
name = module+"."+name
mod = __import__(name)
components = name.split('.')
for comp in components[1:]:
mod = getattr(mod, comp)
return mod


Salud.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/