home
·
contact
·
privacy
projects
/
plomtask
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve type hints sufficiently for mypy not to complain, and for Day.__eq__ check...
[plomtask]
/
task.py
diff --git
a/task.py
b/task.py
index 4774c8c51597c934b73be4462b2a1d2688ab0b03..963143463bfcbba7125415ed1aa025f19adbb9a4 100755
(executable)
--- a/
task.py
+++ b/
task.py
@@
-15,16
+15,25
@@
class HandledException(Exception):
"""To identify Exceptions based on expected (if faulty) user behavior."""
"""To identify Exceptions based on expected (if faulty) user behavior."""
+class TaskServer(HTTPServer):
+ """Variant of HTTPServer that knows .jinja as Jinja Environment."""
+
+ def __init__(self, *args, **kwargs):
+ super().__init__(self, *args, **kwargs)
+ self.jinja = JinjaEnv(loader=JinjaFSLoader(TEMPLATES_DIR))
+
+
class TaskHandler(BaseHTTPRequestHandler):
"""Handles single HTTP request."""
class TaskHandler(BaseHTTPRequestHandler):
"""Handles single HTTP request."""
+ server: TaskServer
- def send_html(self, html:
str, code:int=
200):
+ def send_html(self, html:
str, code: int =
200):
"""Send HTML as proper HTTP response."""
self.send_response(code)
self.end_headers()
self.wfile.write(bytes(html, 'utf-8'))
"""Send HTML as proper HTTP response."""
self.send_response(code)
self.end_headers()
self.wfile.write(bytes(html, 'utf-8'))
- def send_msg(self, msg:
str, code:int=
400):
+ def send_msg(self, msg:
str, code: int =
400):
"""Send message in HTML formatting as HTTP response."""
html = self.server.jinja.get_template('msg.html').render(msg=msg)
self.send_html(html, code)
"""Send message in HTML formatting as HTTP response."""
html = self.server.jinja.get_template('msg.html').render(msg=msg)
self.send_html(html, code)
@@
-52,8
+61,7
@@
class TaskHandler(BaseHTTPRequestHandler):
def main():
"""Main loop."""
def main():
"""Main loop."""
- server = HTTPServer(('localhost', HTTP_PORT), TaskHandler)
- server.jinja = JinjaEnv(loader=JinjaFSLoader(TEMPLATES_DIR))
+ server = TaskServer(('localhost', HTTP_PORT), TaskHandler)
print(f'running at port {HTTP_PORT}')
try:
server.serve_forever()
print(f'running at port {HTTP_PORT}')
try:
server.serve_forever()