-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathblog.py
75 lines (67 loc) · 2.44 KB
/
blog.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/env python
#
# Copyright 2009 Facebook
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import os.path
import logging
#import pkg_resources
#pkg_resources.require("oauth")
import tornado.wsgi
import wsgiref.handlers
import blogzz.handlers as handlers
import blogzz.uimodules as uimodules
settings = {
"template_path": os.path.join(os.path.dirname(__file__), "../templates"),
"ui_modules": {"Entry": uimodules.EntryModule},
"xsrf_cookies": True,
"use_buzz": True,
"autoescape": None
}
application = tornado.wsgi.WSGIApplication([
(r"/", handlers.DashboardHandler),
(r"/([^/]+)", handlers.HomeHandler),
(r"/([^/]+)/archive", handlers.ArchiveHandler),
(r"/([^/]+)/feed", handlers.FeedHandler),
(r"/([^/]+)/entry/([^/]+)", handlers.EntryHandler),
(r"/([^/]+)/compose", handlers.ComposeHandler),
(r"/atomtest", handlers.AtomTestHandler),
(r"/([^/]+)/subhub", handlers.SubHubHandler),
(r"/([^/]+)/hubcallback", handlers.HubCallbackHandler),
], **settings)
def real_main():
#logging.basicConfig(level=logging.DEBUG, format='%(asctime)s:%(msecs)03d %(levelname)-8s %(name)-8s %(message)s', datefmt='%H:%M:%S')
logging.getLogger().setLevel(logging.DEBUG)
#tornado.locale.load_translations(
# os.path.join(os.path.dirname(__file__), "translations"))
wsgiref.handlers.CGIHandler().run(application)
def profile_main():
# This is the main function for profiling
# We've renamed our original main() above to real_main()
# It depends on python-profiler ubuntu package
import cProfile, pstats
prof = cProfile.Profile()
prof = prof.runctx("real_main()", globals(), locals())
print '<link rel="stylesheet" href="/static/css/profile.css" type="text/css"/>'
print "<pre id='profile'>"
stats = pstats.Stats(prof)
stats.sort_stats("time") # Or cumulative
stats.print_stats(80) # 80 = how many to print
# The rest is optional.
print "----------"
stats.print_callees()
stats.print_callers()
print "</pre>"
if __name__ == "__main__":
#profile_main()
real_main()