from bson.objectid import ObjectId from datetime import datetime,timedelta from flask import session, jsonify, abort, request, Response import uuid from hpit.server.app import ServerApp app_instance = ServerApp.get_instance() app = app_instance.app mongo = app_instance.mongo db = app_instance.db csrf = app_instance.csrf from hpit.server.models import Plugin, Tutor, Subscription, MessageAuth, ResourceAuth from hpit.management.settings_manager import SettingsManager settings = SettingsManager.get_server_settings() import random def _map_mongo_document(document): mapped_doc = {} for k, v in document.items(): if k == '_id': v = str(v) elif k == 'message_id': v = str(v) elif isinstance(v, datetime): v = v.isoformat() mapped_doc[k] = v
from hpitclient import Plugin from pymongo import MongoClient from bson.objectid import ObjectId import bson from couchbase import Couchbase import couchbase import requests import json from hpit.management.settings_manager import SettingsManager settings = SettingsManager.get_plugin_settings() class SkillManagementPlugin(Plugin): def __init__(self, entity_id, api_key, logger, args = None): super().__init__(entity_id, api_key) self.logger = logger self.mongo = MongoClient(settings.MONGODB_URI) self.db = self.mongo[settings.MONGO_DBNAME].hpit_skills self.db.ensure_index("skill_name") if args: try: self.args = json.loads(args[1:-1]) self.transaction_manager_id = self.args["transaction_management"] except KeyError: raise Exception("Failed to initialize; invalid transaction_management") else: raise Exception("Failed to initialize; invalid transaction_management")
import os from hpit.server.app import ServerApp from pymongo import MongoClient app_instance = ServerApp.get_instance() app = app_instance.app db = app_instance.db mongo = app_instance.mongo from hpit.management.settings_manager import SettingsManager settings = SettingsManager.get_server_settings() plugin_settings = SettingsManager.get_plugin_settings() class Command: description = "Indexes the Mongo Database." def __init__(self, manager, parser): self.manager = manager def run(self, arguments, configuration): self.arguments = arguments self.configuration = configuration #server dbs with app.app_context(): mongo.db.plugin_messages.create_index('receiver_entity_id') mongo.db.plugin_transactions.create_index('receiver_entity_id') mongo.db.sent_messages_and_transactions.create_index('time_received') #mongo.db.sent_responses.create_index('time_response_received')
import argparse import logging from logging.handlers import RotatingFileHandler import os import random import signal import uuid from datetime import datetime import platform from hpit.management.settings_manager import SettingsManager try: settings_manager = SettingsManager.init_instance(os.environ['HPIT_ENV']) except KeyError: settings_manager = SettingsManager.init_instance('debug') plugin_settings = SettingsManager.get_plugin_settings() #import tutors and plugins from hpit.tutors import * from hpit.plugins import * random.seed(datetime.now()) tutor_types = [ 'example', 'knowledge_tracing', 'replay', 'data_connector', 'problem_generator', 'student_model', 'load_testing' ]
def __init__(self): self.settings = SettingsManager.get_server_settings() self.app_instance = ServerApp.get_instance() self.app_instance.bootstrap_user()
import unittest from mock import * from pymongo import MongoClient from pymongo.collection import Collection from hpit.plugins import DataStoragePlugin from hpit.management.settings_manager import SettingsManager settings = SettingsManager.get_plugin_settings() class TestDataStoragePlugin(unittest.TestCase): def setUp(self): self.test_subject = DataStoragePlugin(1234, 5678, None) self.test_subject.send_response = MagicMock() def tearDown(self): client = MongoClient() client.drop_database(settings.MONGO_DBNAME) self.test_subject = None def test_constructor(self): """ DataStoragePlugin.__init__() Test plan: -make sure self.mongo is a mongo client -make sure self.db is the hpit_data_storage collection -make sure logger set correctly """ ds = DataStoragePlugin(1234, 5678, None) ds.logger.should.equal(None)
import argparse import logging from logging.handlers import RotatingFileHandler import os import random import signal import uuid from datetime import datetime import platform from hpit.management.settings_manager import SettingsManager try: settings_manager = SettingsManager.init_instance(os.environ['HPIT_ENV']) except KeyError: settings_manager = SettingsManager.init_instance('debug') plugin_settings = SettingsManager.get_plugin_settings() #import tutors and plugins from hpit.tutors import * from hpit.plugins import * random.seed(datetime.now()) tutor_types = [ 'example', 'knowledge_tracing', 'replay', 'data_connector',
import os import markdown import requests from hpit.management.settings_manager import SettingsManager settings = SettingsManager.get_server_settings() class Command: description = "Copy's the root project README.md to the server assets folder." def __init__(self, manager, parser): self.manager = manager def run(self, args, configuration): self.args = args self.configuration = configuration doc_md = "" with open(os.path.join(settings.PROJECT_DIR, 'README.md'), 'r') as f: doc_md = f.read() doc_html = markdown.markdown(doc_md, extensions=['tables']) with open( os.path.join(settings.PROJECT_DIR, 'hpit/server/templates/_docs_md.html'), 'w') as f: f.write(doc_html) #Build Client Side Docs response = requests.get(
import platform import os from hpit.management.settings_manager import SettingsManager try: settings = SettingsManager.init_instance(os.environ['HPIT_ENV']) except KeyError: settings = SettingsManager.init_instance('debug') from hpit.management.entity_manager import EntityManager manager = EntityManager() import hpit.server.views.api import hpit.server.views.dashboard import hpit.server.models if manager: manager.run_manager()