summaryrefslogtreecommitdiff
path: root/server/__init__.py
blob: c8e458164378e9cd91f09bdfa02039d4b8edea32 (plain)
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
# CodeQ: an online programming tutor.
# Copyright (C) 2015 UL FRI
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

__all__ = ['socket', 'handlers', 'user_session', 'prolog_session', 'python_session', 'robot_session', 'problems', 'LanguageSession']

# language session handlers are added as their modules are loaded and processed
language_session_handlers = {}

# the base class for all language session handlers
class LanguageSession(object):

    def destroy(self):
        pass

    def hint(self, sid, problem_id, program):
        pass

    def test(self, sid, problem_id, program):
        pass

# these imports must be made after LanguageSession is defined, otherwise they won't succeed
# the order of imports is important! first language sessions, then user_session

import server.prolog_session
import server.python_session
import server.robot_session
import server.user_session
import server.socket
import server.problems
import server.handlers