def get_constraints()

in main.py [0:0]


def get_constraints(bot_definition):
    distinct_slot_values = bot_definition['distinct_slot_values']

    closed_type_constraints = []
    for slot_var in distinct_slot_values:
        the_constraint = {'name': f"closedType_{slot_var}",
                          "isGlobal": True,
                          "slots": [slot_var],
                          "disjunctions": [
                              [{
                                  "slotVariable": slot_var,
                                  "operator": "IN",
                                  "values": distinct_slot_values[slot_var]
                              }]
                          ]}
        closed_type_constraints.append(the_constraint)

    # Mapping from intents to constraints
    ## Initialization
    all_constraints = bot_definition["constraints"] + closed_type_constraints
    constraints_for_intent = {i:[] for i in bot_definition['main_intents']}
    
    ## Map constraints to intents
    for i in bot_definition["main_intents"]:
        for constraint in all_constraints:
            if constraint['isGlobal'] or i in constraint['intents']:
                constraints_for_intent[i].append(constraint)

    return all_constraints, constraints_for_intent