Jim Paris
c7c65b6542
Spent way too long trying to track down a cryptic error that turned out to be a CherryPy bug. Now we catch this using a decorator in the 'extract' and 'intervals' generators that transforms exceptions that trigger the bugs into one that does not. fun!
36 lines
1.1 KiB
Python
Executable File
36 lines
1.1 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import nilmdb
|
|
import argparse
|
|
|
|
formatter = argparse.ArgumentDefaultsHelpFormatter
|
|
parser = argparse.ArgumentParser(description='Run the NILM server',
|
|
formatter_class = formatter)
|
|
parser.add_argument('-p', '--port', help='Port number', type=int, default=12380)
|
|
parser.add_argument('-d', '--database', help='Database directory', default="db")
|
|
parser.add_argument('-y', '--yappi', help='Run with yappi profiler',
|
|
action='store_true')
|
|
args = parser.parse_args()
|
|
|
|
# Start web app on a custom port
|
|
db = nilmdb.NilmDB(args.database)
|
|
server = nilmdb.Server(db, host = "127.0.0.1",
|
|
port = args.port,
|
|
embedded = False)
|
|
|
|
|
|
if args.yappi:
|
|
print "Running in yappi"
|
|
try:
|
|
import yappi
|
|
yappi.start()
|
|
server.start(blocking = True)
|
|
finally:
|
|
yappi.stop()
|
|
print "Try: yappi.print_stats(sort_type=yappi.SORTTYPE_TTOT,limit=50)"
|
|
from IPython import embed
|
|
embed()
|
|
else:
|
|
server.start(blocking = True)
|
|
db.close()
|