[bottle] startbottle.py

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Ich bastel gerade an einem Commandline Tool, um Bottle Server Instanzen zu starten, ohne extra ne start.py mit bottle.run(...) anlegen zu müssen. Im Prinzip importiert das Programm ein paar Module, registriert die darin enthaltenen Routen und Callbacks und startet dann den Server. Nichts Besonderes, aber ich finds ungemein praktisch.

http://github.com/defnull/bottle/blob/m ... tbottle.py

Code: Alles auswählen

Usage: startbottle.py [options] module1 [module2 ...]

Options:
  -h, --help            show this help message and exit
  -s SERVER, --server=SERVER
                        Server backend: AutoServer (default), FapwsServer,
                        CherryPyServer, PasteServer, TwistedServer,
                        GunicornServer or WSGIRefServer
  -a HOST, --host=HOST  Host address or name to bind to (default: localhost)
  -r, --reload          Use auto reloading? (default: off)
  -p PORT, --port=PORT  TCP Port to bind to (default: 8080)
  -l LOG, --log=LOG     Path to the logfile (default: stderr)
  -d, --debug           Log debug messages and include a stacktrace to
                        HTTP-500 error pages (dangerous on public servers)
  -v, --verbose         Same as -d
Die Idee ist auch, den recht hässlichen AutoReload code aus der bottle.py raus zu bekommen. Das ist nicht der Job von Bottle.

Das Gedanken-Experiment, das zu dieser Executable geführt hat, ist noch recht jung. Habt ihr noch weitere Ideen? Gibt es noch weitere nützliche Meta-Features?
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Was `get_modulefiles()` betrifft, könntest du vielleicht mal nen Blick in inspect.getsourcefile() werfen, da das zu großen Teilen ähnlich verfährt wie deine Funktion.

Und was ich nicht verstehe: Wieso testet du einmal auf die Plattform und einmal nach trial-and-error vor dem Import eines win32-Moduls?

Wenn man `run_child()` etwas hübscher haben möchte, kann man `os.path.getmtime()` nutzen. :)
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

snafu hat geschrieben:Und was ich nicht verstehe: Wieso testet du einmal auf die Plattform und einmal nach trial-and-error vor dem Import eines win32-Moduls?
Copy&Paste aus verschiedenen Quellen ;)

Die anderen Vorschläge werde ich beherzigen, danke :D
Bottle: Micro Web Framework + Development Blog
Antworten