diff options
author | Timotej Lazar <timotej.lazar@araneo.org> | 2015-08-28 11:47:53 +0200 |
---|---|---|
committer | Timotej Lazar <timotej.lazar@araneo.org> | 2015-08-28 11:47:53 +0200 |
commit | 8cd70975854ddefaf9dadbade1559059ad781f3c (patch) | |
tree | 659d570a1528f219f633c5009a791ea63629a3b4 /server/user_session.py | |
parent | 5eaf1e29c779d18f1fe00f303399ecf6d3fdb80c (diff) |
Add Python session support
Diffstat (limited to 'server/user_session.py')
-rw-r--r-- | server/user_session.py | 11 |
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() |