Example #1
0
 def post(self):
     key = self['email']
     redirect_url = str(
         self['redirect_url']) if self['redirect_url'] else '/community'
     if self['fb-pic-checkbox']:
         image_url = 'https://graph.facebook.com/' + self[
             "facebook_id"] + '/picture?type=normal&height=300&width=300'
     else:
         image_url = '/assets/img/landing/default_member.png'
     role = int(self['role']) if self['role'] else MEMBER_ROLE[ENGINEER]
     member = Member.create_or_update(key,
                                      name=self['name'],
                                      organization=self["organization"],
                                      designation=self["designation"],
                                      website=self["website"],
                                      twitter_handle=self["twitter_handle"],
                                      facebook_id=self["facebook_id"],
                                      bio=self["bio"],
                                      password=self['password'],
                                      image_url=image_url,
                                      role=role)
     self.session['member'] = key
     redirect_url = '/tracks'
     if role == MEMBER_ROLE[MANAGER]:
         Manager.create(member)
     else:
         managed_by = self['manager']
         ManagedUser.create(member, Manager._for(managed_by))
     self.redirect(redirect_url)
Example #2
0
    def test_manager_no_puede_unirse_con_usuario_repetido(self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")

        self.assertRaises(JugadorExistenteException, manager.agregar_jugador,
                          "Román", "Amongas Volley Club 2")
        self.assertFalse("Amongas Volley Club 2" in manager.listar_lobbies())
Example #3
0
    def test_manager_no_se_puede_sacar_al_jugador_si_no_existe(self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")

        self.assertRaises(JugadorInExistenteException, manager.sacar_jugador,
                          "Ron", "Amongas Volley Club")
Example #4
0
    def test_manager_no_puede_cortar_partidas_no_iniciadas(self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")

        self.assertRaises(PartidaNoIniciadaException, manager.cortar_juego_en,
                          "Amongas Volley Club")
Example #5
0
    def test_manager_no_se_puede_pedir_estado_en_partida_no_iniciada(
            self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")

        self.assertRaises(PartidaNoIniciadaException, manager.estado_en,
                          "Amongas Volley Club")
Example #6
0
    def test_manager_no_se_puede_tomar_accion_en_partida_no_iniciada(
            self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")

        accion = {'jugador': "Román", 'accion': 'DESCARTAR', 'carta': 0}

        self.assertRaises(PartidaNoIniciadaException, manager.tomar_accion_en,
                          "Amongas Volley Club", accion)
Example #7
0
    def test_manager_se_saca_la_partida_al_cortar(self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")
        manager.iniciar_juego_en("Amongas Volley Club")
        manager.cortar_juego_en("Amongas Volley Club")

        self.assertTrue("Amongas Volley Club" in manager.listar_lobbies())
Example #8
0
def get_system(name, args, schema=None, timed=False, model_path=None):
    if name in ('rulebased', 'neural'):
        lexicon = Lexicon(schema,
                          args.learned_lex,
                          stop_words=args.stop_words,
                          lexicon_path=args.lexicon)
        if args.inverse_lexicon:
            realizer = InverseLexicon.from_file(args.inverse_lexicon)
        else:
            realizer = DefaultInverseLexicon()
    if name == 'rulebased':
        templates = Templates.from_pickle(args.templates)
        generator = Generator(templates)
        manager = Manager.from_pickle(args.policy)
        return RulebasedSystem(lexicon, generator, manager, timed)
    elif name == 'neural':
        assert args.model_path
        return NeuralSystem(schema,
                            lexicon,
                            args.model_path,
                            args.fact_check,
                            args.decoding,
                            realizer=realizer)
    elif name == 'cmd':
        return CmdSystem()
    else:
        raise ValueError('Unknown system %s' % name)
Example #9
0
def get_system(name, args, schema=None, timed=False, model_path=None):
    lexicon = PriceTracker(args.price_tracker_model)
    if name == 'rulebased':
        templates = Templates.from_pickle(args.templates)
        generator = Generator(templates)
        manager = Manager.from_pickle(args.policy)
        return RulebasedSystem(lexicon, generator, manager, timed)
    #elif name == 'config-rulebased':
    #    configs = read_json(args.rulebased_configs)
    #    return ConfigurableRulebasedSystem(configs, lexicon, timed_session=timed, policy=args.config_search_policy, max_chats_per_config=args.chats_per_config, db=args.trials_db, templates=templates)
    elif name == 'cmd':
        return CmdSystem()
    elif name.startswith('ranker'):
        # TODO: hack
        #retriever1 = Retriever(args.index+'-1', context_size=args.retriever_context_len, num_candidates=args.num_candidates)
        #retriever2 = Retriever(args.index+'-2', context_size=args.retriever_context_len, num_candidates=args.num_candidates)
        retriever = Retriever(args.index, context_size=args.retriever_context_len, num_candidates=args.num_candidates)
        if name == 'ranker-ir':
            return IRRankerSystem(schema, lexicon, retriever)
        elif name == 'ranker-ir1':
            return IRRankerSystem(schema, lexicon, retriever1)
        elif name == 'ranker-ir2':
            return IRRankerSystem(schema, lexicon, retriever2)
        elif name == 'ranker-neural':
            return NeuralRankerSystem(schema, lexicon, retriever, model_path, args.mappings)
        else:
            raise ValueError
    elif name in ('neural-gen', 'neural-sel'):
        assert model_path
        return NeuralSystem(schema, lexicon, model_path, args.mappings, args.decoding, index=args.index, num_candidates=args.num_candidates, retriever_context_len=args.retriever_context_len, timed_session=timed)
    else:
        raise ValueError('Unknown system %s' % name)
Example #10
0
def get_system(name, args, schema=None, timed=False, model_path=None):
    from core.price_tracker import PriceTracker
    lexicon = PriceTracker(args.price_tracker_model)

    if name == 'rulebased':
        from rulebased_system import RulebasedSystem
        from model.generator import Templates, Generator
        from model.manager import Manager
        templates = Templates.from_pickle(args.templates)
        generator = Generator(templates)
        manager = Manager.from_pickle(args.policy)
        return RulebasedSystem(lexicon, generator, manager, timed)
    elif name == 'hybrid':
        from hybrid_system import HybridSystem
        templates = Templates.from_pickle(args.templates)
        manager = PytorchNeuralSystem(args, schema, lexicon, model_path, timed)
        generator = Generator(templates)
        return HybridSystem(lexicon, generator, manager, timed)
    elif name == 'cmd':
        from cmd_system import CmdSystem
        return CmdSystem()
    elif name == 'pt-neural':
        from neural_system import PytorchNeuralSystem
        assert model_path
        return PytorchNeuralSystem(args, schema, lexicon, model_path, timed)
    else:
        raise ValueError('Unknown system %s' % name)
Example #11
0
    def test_manager_no_se_puede_tomar_accion_en_lobby_inexistente(
            self) -> None:
        manager = Manager()

        accion = {'jugador': "Román", 'accion': 'DESCARTAR', 'carta': 0}

        self.assertRaises(LobbyInexistenteException, manager.tomar_accion_en,
                          "Amongas Volley Club", accion)
Example #12
0
    def test_manager_unirse_con_usuario_a_lobby(self) -> None:
        manager = Manager()
        manager.crear_lobby("Amongas Volley Club")

        manager.agregar_jugador("Román", "Amongas Volley Club")

        self.assertEqual("Amongas Volley Club", manager.sala_de("Román"))
Example #13
0
    def test_manager_iniciar_partida_la_deja_de_mostrar_al_listar(
            self) -> None:
        manager = Manager()
        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")
        manager.iniciar_juego_en("Amongas Volley Club")

        self.assertFalse("Amongas Volley Club" in manager.listar_lobbies())
Example #14
0
    def test_manager_pueden_haber_varios_lobbies(self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club 2")

        self.assertEquals(["Amongas Volley Club", "Amongas Volley Club 2"],
                          manager.listar_lobbies())
Example #15
0
    def test_manager_tomar_accion_en_partida(self) -> None:
        self.maxDiff = None
        manager = Manager(mezclar_rojo_verde)

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")
        manager.iniciar_juego_en("Amongas Volley Club")

        accion = {'jugador': "Román", 'accion': 'DESCARTAR', 'carta': 0}
        manager.tomar_accion_en("Amongas Volley Club", accion)

        self.assertEqual(
            {
                'global': {
                    'terminado': False,
                    'jugadores': ["Román", "Ramón"],
                    'turno_de': "Ramón",
                    'vidas': 3,
                    'pistas_restantes': 7,
                    'cartas_restantes': 9,
                    'tablero': {
                        'Rojo': 0,
                        'Azul': 0,
                        'Amarillo': 0,
                        'Verde': 0,
                        'Blanco': 0
                    },
                    'puntaje': 0,
                    'descarte': {
                        'Rojo': [],
                        'Azul': [],
                        'Amarillo': [],
                        'Verde': [],
                        'Blanco': []
                    }
                },
                'estado_jugadores': {
                    'Román': {
                        'cartas': [(i, "Verde")
                                   for i in range(2, 6)] + [(5, "Azul")],
                        'pistas': [[], [], [], [], []]
                    },
                    'Ramón': {
                        'cartas': [(i, "Rojo") for i in range(1, 6)],
                        'pistas': [[], [], [], [], []]
                    }
                }
            }, manager.estado_en("Amongas Volley Club"))
Example #16
0
 def get(self):
     redirect_url = self['redirect_url'] if self['redirect_url'] else '/community'
     path = 'member_registration.html'
     template_values = {}
     template_values['redirect_url'] = redirect_url
     template_values['is_member'] = True if 'member' in self.session else False
     if 'member' in self.session:
         template_values['member'] = Member.get_member_json(self.session['member'])
     template_values['managers'] = Manager.get_managers()
     self.write(self.get_rendered_html(path, template_values), 200)
Example #17
0
    def test_manager_se_borra_el_lobby_si_la_sala_queda_vacia(self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")
        manager.sacar_jugador("Román", "Amongas Volley Club")
        manager.sacar_jugador("Ramón", "Amongas Volley Club")

        self.assertEqual([], manager.listar_lobbies())
Example #18
0
 def post(self):
     key = self['email']
     redirect_url = str(self['redirect_url']) if self['redirect_url'] else '/community'
     if self['fb-pic-checkbox']:
         image_url = 'https://graph.facebook.com/'+self["facebook_id"]+'/picture?type=normal&height=300&width=300'
     else:
         image_url = '/assets/img/landing/default_member.png'
     role = int(self['role']) if self['role'] else MEMBER_ROLE[ENGINEER]
     member = Member.create_or_update(key, name=self['name'], organization=self["organization"],
                             designation=self["designation"], website=self["website"],
                             twitter_handle=self["twitter_handle"], facebook_id=self["facebook_id"], bio=self["bio"],
                             password=self['password'], image_url=image_url, role=role)
     self.session['member'] = key
     redirect_url = '/tracks'
     if role == MEMBER_ROLE[MANAGER]:
         Manager.create(member)
     else:
         managed_by = self['manager']
         ManagedUser.create(member, Manager._for(managed_by))
     self.redirect(redirect_url)
Example #19
0
    def __to_object(self, data, role):
        name = data[0]
        email = data[1]
        login = data[2]
        pwd = data[3]

        if role == 'Manager':
            return Manager(name=name, email=email, login=login, password=pwd)
        if role == 'Client':
            return Client(name=name, email=email, login=login, password=pwd)
        raise Exception('Invalid person role "{0}".'.format(role))
Example #20
0
def get_system(name, args, schema, model_path=None, timed=False):
    lexicon = Lexicon.from_pickle(args.lexicon)
    templates = Templates.from_pickle(args.templates)
    if name == 'rulebased':
        templates = Templates.from_pickle(args.templates)
        generator = Generator(templates)
        manager = Manager.from_pickle(args.policy)
        return RulebasedSystem(lexicon, generator, manager, timed)
    elif name == 'cmd':
        return CmdSystem()
    else:
        raise ValueError('Unknown system %s' % name)
Example #21
0
 def get(self):
     redirect_url = self['redirect_url'] if self[
         'redirect_url'] else '/community'
     path = 'member_registration.html'
     template_values = {}
     template_values['redirect_url'] = redirect_url
     template_values[
         'is_member'] = True if 'member' in self.session else False
     if 'member' in self.session:
         template_values['member'] = Member.get_member_json(
             self.session['member'])
     template_values['managers'] = Manager.get_managers()
     self.write(self.get_rendered_html(path, template_values), 200)
Example #22
0
def get_system(name, args, schema=None, timed=False):
    lexicon = Lexicon(schema.values['owner'])
    if name == 'rulebased':
        templates = Templates.from_pickle(args.templates)
        generator = Generator(templates)
        manager = Manager.from_pickle(args.policy)
        return RulebasedSystem(lexicon, generator, manager, timed)
    elif name == 'cmd':
        return CmdSystem()
    # elif name == 'neural':
    #     return NeuralSystem(args.model_file, args.temperature, timed_session=timed, gpu=args.gpu)
    else:
        raise ValueError('Unknown system %s' % name)
Example #23
0
    def test_manager_unirse_a_lobby_inexistente_lo_tiene_que_crear(
            self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")

        self.assertTrue("Amongas Volley Club" in manager.listar_lobbies())
        self.assertEqual("Amongas Volley Club", manager.sala_de("Román"))
Example #24
0
    def test_manager_no_se_puede_iniciar_una_partida_ya_iniciada(self) -> None:
        manager = Manager()
        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")
        manager.iniciar_juego_en("Amongas Volley Club")

        self.assertRaises(PartidaYaIniciadaException, manager.iniciar_juego_en,
                          "Amongas Volley Club")
Example #25
0
    def test_manager_sacar_al_jugador_lo_remueve_completamente(self) -> None:
        manager = Manager()

        manager.agregar_jugador("Román", "Amongas Volley Club")
        manager.agregar_jugador("Ramón", "Amongas Volley Club")
        manager.sacar_jugador("Román", "Amongas Volley Club")

        self.assertRaises(JugadorInExistenteException, manager.sala_de,
                          "Román")
def user_session(id, class_name):
    """Return object with given class name in class_name and id"""
    if class_name == "Student":

        return Student.get_by_id(id)
    elif class_name == "Mentor":

        return Mentor.get_by_id(id)
    elif class_name == "Employee":

        return Employee.get_by_id(id, 'assistant')
    elif class_name == "Manager":

        return Manager.get_by_id(id)
    return None
Example #27
0
def get_system(name, args, schema=None, timed=False, model_path=None):
    lexicon = Lexicon(schema.values['item'])
    if name == 'rulebased':
        templates = Templates.from_pickle(args.templates)
        generator = Generator(templates)
        manager = Manager.from_pickle(args.policy)
        return RulebasedSystem(lexicon, generator, manager, timed)
    elif name == 'hybrid':
        assert model_path
        templates = Templates.from_pickle(args.templates)
        manager = PytorchNeuralSystem(args, schema, lexicon, model_path, timed)
        generator = Generator(templates)
        return HybridSystem(lexicon, generator, manager, timed)
    elif name == 'cmd':
        return CmdSystem()
    elif name == 'fb-neural':
        assert model_path
        return FBNeuralSystem(model_path, args.temperature, timed_session=timed, gpu=False)
    elif name == 'pt-neural':
        assert model_path
        return PytorchNeuralSystem(args, schema, lexicon, model_path, timed)
    else:
        raise ValueError('Unknown system %s' % name)
Example #28
0
    parser.add_argument('--transcripts',
                        nargs='*',
                        help='JSON transcripts to extract templates')
    parser.add_argument('--max-examples', default=-1, type=int)
    parser.add_argument('--templates', help='Path to load templates')
    parser.add_argument('--policy', help='Path to load model')
    parser.add_argument('--schema-path', help='Path to schema')
    parser.add_argument(
        '--agent', help='Only consider examples with the given type of agent')
    add_price_tracker_arguments(parser)
    args = parser.parse_args()

    lexicon = PriceTracker(args.price_tracker_model)
    #templates = Templates.from_pickle(args.templates)
    templates = Templates()
    manager = Manager.from_pickle(args.policy)
    analyzer = Analyzer(lexicon)

    # TODO: skip examples
    examples = read_examples(args.transcripts, args.max_examples, Scenario)
    agent = args.agent
    if agent is not None:
        examples = [e for e in examples if agent in e.agents.values()]
    analyzer.example_stats(examples, agent=agent)
    #import sys; sys.exit()

    parsed_dialogues = []
    for example in examples:
        utterances = parse_example(example, lexicon, templates)
        parsed_dialogues.append(utterances)
Example #29
0
    def test_manager_no_puede_crear_lobby_ya_existente(self) -> None:
        manager = Manager()
        manager.crear_lobby("Amongas Volley Club")

        self.assertRaises(LobbyExistenteException, manager.crear_lobby,
                          "Amongas Volley Club")
Example #30
0
    def test_manager_no_se_puede_iniciar_una_partida_de_un_lobby_inexistente(
            self) -> None:
        manager = Manager()

        self.assertRaises(LobbyInexistenteException, manager.iniciar_juego_en,
                          "Amongas Volley Club")
Example #31
0
import time
from flask import Flask, render_template, request
from flask_socketio import SocketIO, join_room, leave_room, emit, send
from model.manager import Manager

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app,
        engineio_logger=True,
        cors_allowed_origins=[
            'http://*****:*****@app.route('/')
def index():
    return "Holo"

@app.route('/time')
def time_api():
    return {'time': time.time()}

"""
@socketio.on('message')
def handle_message(data):
    print('received message:', data)

@socketio.on('json')
def handle_message(json):
    print('received json:', json)
Example #32
0
 def get_managed_users(cls, manager_email):
     return ManagedUser.all().ancestor(Manager._for(manager_email)).fetch(limit=50)
Example #33
0
 def get_managed_users(cls, manager_email):
     return ManagedUser.all().ancestor(
         Manager._for(manager_email)).fetch(limit=50)