Síða 1 af 1

Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 00:07
af guttalingur
Núna er ég að setja allan plugin kóðan í plugins.py.
Svo geri ég:

Kóði: Velja allt

import plugins


En mig vantar möguleikan á að setja alla plugin classana í mismunandi skjöl inní ./plugins/ og loada.
Er einhvern vegin ekki að fatta lausnina, nota IMP?

Mitt current setup er svona( pseudo plugins )
Canvas.py

Kóði: Velja allt

import plugins
def Render(self,method,function,variable): # render it function called from system.Render
        hex_class =getattr(plugins ,method)  # get the class to call
        hex_class_inst = hex_class(self.reqHandler) # bind it i think or call the init yada yada yada ### request handler is to be deprecated
        hex_funct = getattr(hex_class_inst ,function) # get the function
        return hex_funct(variable)   # call Plugin with the variable tuple

Og svo inní python-tornado.

Kóði: Velja allt

class RenderHandler(tornado.web.RequestHandler):
    def get(self,method,function,variable):
        hexer = hex(self)
        splitter = variable.split("|")
        tuple = []
        for item in splitter:
            tuple.append(str(item))
        todo = hexer.Render(method,function,tuple)
        # switch like statement below switch(todo[0])

sample plugin.

Kóði: Velja allt

class user(Thor_plugin):
    def get_current_user(self):
        if self.handler.get_secure_cookie("username") != None:
            return self.handler.get_secure_cookie("username")
        else:
            return "0"
    def __init__(self,handle):
        self.handler = handle
        super(user,self).__init__(handle)
    def login(self,var):
        return (3 ,"login.html")


Svo til þess að sýna login
Gerirðu mysite.com/user/login//

Vill geta notað getattr

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 00:10
af guttalingur
Já og endilega ef þið hafið einhver löst í sambandi við aðferðinna sem ég er að nota
Shoot me!

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 00:19
af dori
Hvað ertu að reyna að gera? Mér finnst vanta smá samhengi? Tornado eins og í vefþjónninn?

edit: sé hvað þú ert að reyna... nota module í staðin fyrir eina gígantíska skrá, rite?

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 09:39
af guttalingur
Akkurat!

Núna er ég með þetta í einu gigantum fæl
Vill setja user modulein í sér skjal inní ./plugins/

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 10:42
af Dagur
Ég er bara að skjóta út í loftið en gleymdir þú að búa til __init__.py skrá?

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 11:11
af dori
Dagur skrifaði:Ég er bara að skjóta út í loftið en gleymdir þú að búa til __init__.py skrá?

Þá þyrfti hann samt að breyta strúktúrnum smá... Svo að plugins.users væri það sem er í plugins.users.users eða eitthvað í þá áttina (er ég nokkuð alveg í ruglinu?).

Ég er ekki alveg viss hvernig er best að gera þetta. Held að þú þurfir að fara í einhverjar æfingar nema þú endurskoðir þetta Render fall eitthvað.

Hvað er málið með allt þetta hex dót? Er það eitthvað tornado thingy?

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 11:25
af guttalingur
Ehh hex er hluti af frameworkinu sem ég er að smíða...

Og þú ert ekkert svo mikið í ruglinu held ég.... Loada plugins.users.users

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 11:38
af dori
guttalingur skrifaði:Ehh hex er hluti af frameworkinu sem ég er að smíða...

Og þú ert ekkert svo mikið í ruglinu held ég.... Loada plugins.users.users

Ok, mér datt það í hug. Ég hef bara aldrei skoðað tornado svo að maður veit aldrei.

Það er samt svo mikið hack að hlaða þessu svona. Ég myndi reyna að endurhugsa þetta aðeins (kannski skoða hvernig þetta er gert annarsstaðar). Svo er líka svolítið skrýtið að þú ert að nota getattr til að sækja eitthvað sem virðist vera mjög dynamic en ert ekki að búast við AttributeError ef attributeið er ekki til staðar (og skila þá 404 eða hvað það er sem þú ert að gera).

Svo er tuple "reserved orð" (það er bara skrýtið að yfirskrifa builtin). Þú getur líka notað list comprehension/generator til að gera þetta.

Kóði: Velja allt

todo = hexer.Render(method, function, (str(item) for item in splitter))

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 12:01
af guttalingur
Ehm jamm er ekki búinn að vinna það mikið í þessu
todo:try except clouse
Takk fyrir að benda mér á tuple villuna ;)

Þetta soundaði flott fyrir það sem mig vantaði....

Re: Vantar python lausn. vegna plugins

Sent: Mið 06. Apr 2011 18:22
af guttalingur
GARRRRRRRRRRGGGGGGGGGGGG........
Implingarnir eru með vesen! (IMP)

Re: Vantar python lausn. vegna plugins

Sent: Fim 07. Apr 2011 01:37
af dori
Hvað eru IMP[lingar]?

[off_topic]
Annars þá finnst mér rosalega erfitt að lesa kóðann þinn. Skoðaðu PEP8 og svo kannski venjurnar hjá Google.

Basic væri að hafa space á milli kommu og næsta arguments. Hafa space sitthvoru megin við = og að hafa komment á sér línum.
[/off_topic]

Re: Vantar python lausn. vegna plugins

Sent: Fim 07. Apr 2011 08:03
af guttalingur
Imp(lingar) er notað til að loada pluginum
imp.load

Ég er að vinna í því að betrumbæta mínar venjur ;)