5
from werkzeug.serving import run_simple
9
from shorty.application import Shorty
11
filename = os.path.join(tempfile.gettempdir(), "shorty.db")
12
return Shorty(f"sqlite:///{filename}")
16
from shorty import models, utils
18
application = make_app()
19
return {"application": application, "models": models, "utils": utils}
29
make_app().init_database()
33
@click.option("-h", "--hostname", type=str, default="localhost", help="localhost")
34
@click.option("-p", "--port", type=int, default=5000, help="5000")
35
@click.option("--no-reloader", is_flag=True, default=False)
36
@click.option("--debugger", is_flag=True)
37
@click.option("--no-evalex", is_flag=True, default=False)
38
@click.option("--threaded", is_flag=True)
39
@click.option("--processes", type=int, default=1, help="1")
40
def runserver(hostname, port, no_reloader, debugger, no_evalex, threaded, processes):
41
"""Start a new development server."""
43
reloader = not no_reloader
44
evalex = not no_evalex
49
use_reloader=reloader,
50
use_debugger=debugger,
58
@click.option("--no-ipython", is_flag=True, default=False)
60
"""Start a new interactive python session."""
61
banner = "Interactive Werkzeug Shell"
62
namespace = make_shell()
66
from IPython.frontend.terminal.embed import InteractiveShellEmbed
68
sh = InteractiveShellEmbed.instance(banner1=banner)
70
from IPython.Shell import IPShellEmbed
72
sh = IPShellEmbed(banner=banner)
76
sh(local_ns=namespace)
78
from code import interact
80
interact(banner, local=namespace)
83
if __name__ == "__main__":