summaryrefslogtreecommitdiff
path: root/server/user_session.py
diff options
context:
space:
mode:
authorTimotej Lazar <timotej.lazar@araneo.org>2015-08-28 11:47:53 +0200
committerTimotej Lazar <timotej.lazar@araneo.org>2015-08-28 11:47:53 +0200
commit8cd70975854ddefaf9dadbade1559059ad781f3c (patch)
tree659d570a1528f219f633c5009a791ea63629a3b4 /server/user_session.py
parent5eaf1e29c779d18f1fe00f303399ecf6d3fdb80c (diff)
Add Python session support
Diffstat (limited to 'server/user_session.py')
-rw-r--r--server/user_session.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/server/user_session.py b/server/user_session.py
index c9d21b4..0abc421 100644
--- a/server/user_session.py
+++ b/server/user_session.py
@@ -6,6 +6,7 @@ import hashlib
import base64
import random
from . import prolog_session
+from . import python_session
from . import problems
import db
from errors.session import NoSuchSession, AuthenticationFailed
@@ -30,6 +31,7 @@ class UserSession(object):
self.uid = uid
self.username = username
self.prolog_session = None
+ self.python_session = None
def destroy(self):
"""Destroys the session."""
@@ -39,6 +41,9 @@ class UserSession(object):
if self.prolog_session is not None:
self.prolog_session.end()
self.prolog_session = None
+ if self.python_session is not None:
+ self.python_session.end()
+ self.python_session = None
# TODO: add any cleanups as features are added!
def get_sid(self):
@@ -53,6 +58,12 @@ class UserSession(object):
self.prolog_session = prolog_session.PrologSession() # lazy init
return self.prolog_session
+ def get_python(self):
+ with self._access_lock:
+ if self.python_session is None:
+ self.python_session = python_session.PythonSession() # lazy init
+ return self.python_session
+
def get_problem_data(self, language, problem_group, problem):
mod = problems.load_problem(language, problem_group, problem, 'en')
conn = db.get_connection()