Ejemplo n.º 1
0
def format_image_link(line: OrderedDict):
    image_pattern = re.compile(r'.*"(?P<link>.*)".*')
    image: str = line.pop('image')
    res = image_pattern.search(image)
    link = res.group('link')
    line.update({'image': link})
    return line
Ejemplo n.º 2
0
async def async_setup(hass: HomeAssistant, config):
    """Register custom view which includes request in context"""
    # Because we start after auth, we have access to store_result
    store_result = hass.data[AUTH_DOMAIN]
    # Remove old LoginFlowIndexView
    for route in hass.http.app.router._resources:
        if route.canonical == "/auth/login_flow":
            _LOGGER.debug("Removed original login_flow route")
            hass.http.app.router._resources.remove(route)
    _LOGGER.debug("Add new login_flow route")
    hass.http.register_view(
        RequestLoginFlowIndexView(hass.auth.login_flow, store_result,
                                  config[DOMAIN]["debug"]))

    # Inject Auth-Header provider.
    providers = OrderedDict()
    provider = headers.HeaderAuthProvider(
        hass,
        hass.auth._store,
        config[DOMAIN],
    )
    providers[(provider.type, provider.id)] = provider
    providers.update(hass.auth._providers)
    hass.auth._providers = providers
    _LOGGER.debug("Injected auth_header provider")
    return True
Ejemplo n.º 3
0
 def freeze(self) -> IPInfoFrozen:
     od = OrderedDict()
     od['inbound'] = self.inbound
     od['forward'] = self.forward
     od['reverse'] = self.reverse
     od.update(self.time_window.freeze())
     return CommentedMap(
         od)  # Hack: prevents !!omap annotation in YAML output
Ejemplo n.º 4
0
def main(args):
    model_index_file = MMCLS_ROOT / 'model-index.yml'
    model_index = Config.fromfile(model_index_file)
    models = OrderedDict()
    for file in model_index.Import:
        metafile = Config.fromfile(MMCLS_ROOT / file)
        models.update({model.Name: model for model in metafile.Models})

    logger = get_root_logger(log_file='benchmark_test_image.log',
                             log_level=logging.INFO)

    if args.models:
        patterns = [re.compile(pattern) for pattern in args.models]
        filter_models = {}
        for k, v in models.items():
            if any([re.match(pattern, k) for pattern in patterns]):
                filter_models[k] = v
        if len(filter_models) == 0:
            print('No model found, please specify models in:')
            print('\n'.join(models.keys()))
            return
        models = filter_models

    summary_data = {}
    for model_name, model_info in models.items():

        config = Path(model_info.Config)
        assert config.exists(), f'{model_name}: {config} not found.'

        logger.info(f'Processing: {model_name}')

        http_prefix = 'https://download.openmmlab.com/mmclassification/'
        dataset = model_info.Results[0]['Dataset']
        if args.checkpoint_root is not None:
            root = Path(args.checkpoint_root)
            checkpoint = root / model_info.Weights[len(http_prefix):]
            checkpoint = str(checkpoint)
        else:
            checkpoint = None

        try:
            # build the model from a config file and a checkpoint file
            result = inference(MMCLS_ROOT / config, checkpoint,
                               classes_map[dataset], args)
            result['valid'] = 'PASS'
        except Exception as e:
            logger.error(f'"{config}" : {repr(e)}')
            result = {'valid': 'FAIL'}

        summary_data[model_name] = result
        # show the results
        if args.show:
            imshow_infos(args.img, result, wait_time=args.wait_time)

    show_summary(summary_data)
Ejemplo n.º 5
0
    def Serialize(self) -> OrderedDict:

        node = OrderedDict(
            {
                "nodeId": self._nodeId,
                "posX": self.pos().x(),
                "posY": self.pos().y(),
            }
        )
        node.update(self._nodeSocketManager.Serialize())
        return node
Ejemplo n.º 6
0
    def step(self, with_next_step: bool = False) -> None:
        """
        Takes 1 step in the agent's environment. Returns the experience
        dictionary. Resets the environment if the current state is a
        terminal.

        Args:
            with_next_step: If true, runs the next state through the model as
                well.
        """
        if self.env.terminal:
            self.reset()
            self.env.reset()

        if self.render:
            self.env.render()

        state = self.env.state
        algo_inp = self.transform_state(state)
        state = algo_inp.pop("state")

        algo_step = self.algo.step(state, *algo_inp.values())
        algo_step = self.transform_algo_step(algo_step)

        env_action = self.transform_action(algo_step["action"])
        next_state, reward, terminal, info = self.env.step(env_action)

        next_algo_inp = self.transform_next_state(next_state)
        next_state = next_algo_inp.pop("next_state")
        reward = self.transform_reward(
            state, algo_step, reward, terminal, next_state
        )
        terminal = self.transform_terminal(terminal, info)
    
        experience = OrderedDict({
            "state": state,
            **algo_inp,
            **algo_step,
            "reward": reward,
            "next_state": next_state,
            **next_algo_inp,
            "terminal": terminal
        })

        if with_next_step:
            next_algo_step = self.algo.step(next_state, *next_algo_inp.values())
            next_algo_step = self.transform_next_algo_step(next_algo_step)

            experience.update(next_algo_step)

        return experience
Ejemplo n.º 7
0
    def validate(self, attrs: OrderedDict):
        attrs = super().validate(attrs)
        if self.context['request'].method == "POST":
            try:
                if self.context['request'].data['password'] != self.context[
                        'request'].data['password_verify']:
                    raise serializers.ValidationError(
                        {'password': '******'})
                attrs.update(
                    {'password': self.context['request'].data['password']})
            except KeyError:
                raise serializers.ValidationError(
                    {'password': '******'})

        return attrs
Ejemplo n.º 8
0
def get_info(row: OrderedDict):

    result = ",".join(row.values())

    try:
        content = requestHTML(row["url"])
        matched_meta_info = match_meta_info(content)
        get_image(matched_meta_info["alt_img_url"], row)
    except Exception as i:
        print(i)
        print("Parsed Faild: " + row["url"])
        return result

    row.update(matched_meta_info)

    # Add local image path
    row["img_path"] = "/assets/img/works/posts/" + \
        "{id}.jpeg".format(id=row["url"][-6:])

    print("解析成功:#" + row["id"] + " " + row["title"])
    return ",".join(row.values())
Ejemplo n.º 9
0
    def freeze(self) -> InstanceInfoFrozen:
        od = OrderedDict()
        od['urls'] = sorted(self.urls)
        od['tls_cert_ok'] = self.tls_cert_ok
        od['instance_api_called'] = self.instance_api_called
        od.update(self.time_window.freeze())

        # TODO: ignore time windows for now
        od['versions'] = sorted(
            set('{server} {version}'.
                format(server=ua.server, version=ua.version
                       ) if ua.version is not None else ua.server
                for ua in self.user_agents.keys()))

        frozen_ips = OrderedDict()
        for ip in sorted(self.ips.keys()):
            frozen_ips[fmt_ip(ip)] = self.ips[ip].freeze()
        od['ips'] = CommentedMap(
            frozen_ips)  # Hack: prevents !!omap annotation in YAML output

        return CommentedMap(
            od)  # Hack: prevents !!omap annotation in YAML output
Ejemplo n.º 10
0
def make_initial_simplex_table(simplex_table: OrderedDict, constraints: list,
                               f_o: dict, big_m):
    """ 
    <summary>

    </summary>
    """
    # Agarrar las variables pertinentes.
    variables = set()
    for i in constraints:
        for k in i.keys():
            variables.add(k)
    for k in f_o.keys():
        variables.add(k)

    f_o_var = set(variables) - set([x for x in f_o.keys()])
    for i in f_o_var:
        f_o.update({i: 0})

    index = 0
    for i in constraints:
        constraints_i = variables - set(i.keys())
        for j in constraints_i:
            constraints[index].update({j: 0})
        index += 1

    temp = {}
    temp.update({k: 0 for k, v in f_o.items()})
    for i in constraints:
        temp.update({k: 0 for k, v in i.items()})
    del temp['symbol']

    # Add the actual variables.
    actual_vars = []
    for k, v in temp.items():
        if (is_actual_variable(k)):
            actual_vars.append(k)
    actual_vars.sort(key=lambda x: x[1:])
    for i in actual_vars:
        simplex_table.update({i: []})
    # Add the slack/excess variables.
    s_e_vars = []
    for k, v in temp.items():
        if (is_slack_excess_variable(k)):
            s_e_vars.append(k)
    s_e_vars.sort(key=lambda x: x[1:])
    for i in s_e_vars:
        simplex_table.update({i: []})
    # Add the artifitial variables.
    a_vars = []
    for k, v in temp.items():
        if (is_artifitial_variable(k)):
            a_vars.append(k)
    a_vars.sort(key=lambda x: x[1:])
    for i in a_vars:
        simplex_table.update({i: []})

    # Add the z.
    simplex_table.update({'z': []})

    # Add the c.
    simplex_table.update({'c': []})

    # Copying the information in f_p and constraints to the simplex table:
    for k, v in simplex_table.items():
        simplex_table[k].append(f_o[k])
    for k, v in simplex_table.items():
        for i in range(len(constraints)):
            simplex_table[k].append(constraints[i][k])

    # {'X1': [-2, 0.5, 1, 1], 'X2': [-3, 0.25, 3, 1], 's1': [0, 1, 0, 0], 'e2': [0, 0, -1, 0], 'a2': [-10000, 0, 1, 0], 'a3': [-10000, 0, 0, 1], 'z': [1, 0, 0, 0], 'c': [0, 4, 20, 10], 'pivot': [0, 0, 0, 0], 'VB': [0, 0, 0, 0], 'index': [0, 1, 2, 3]}

    # Transpose.
    simplex_table_T = [{} for x in range(len(simplex_table['z']))]
    for k, v in simplex_table.items():
        for i in range(len(simplex_table_T)):
            simplex_table_T[i].update({k: v[i]})

    # new_row:
    new_row_0 = []
    for i in simplex_table_T:
        contributes_to_new_row = False
        for k, v in i.items():
            if ((k[0] == 'a') and (v != 0)):
                contributes_to_new_row = True
        if contributes_to_new_row:
            new_row_0.append(i.copy())

    new_row = []
    for i in new_row_0:
        is_first_row = False
        for k, v in i.items():
            if ((k == 'z') and (v == 1)):
                is_first_row = True
                break

        if is_first_row:
            new_row.append(i)
        else:
            new_row.append(mult_row(i, big_m))

    # Sum all the interesting rows.
    new_row_0 = {k: 0 for k, v in new_row[0].items()}
    for i in new_row:
        for k, v in i.items():
            new_row_0[k] += v

    # Make artificial letters 0.
    for k, v in new_row_0.items():
        if (k[0] == 'a'):
            new_row_0[k] = 0

    # Making the new_row_0 the new zeroth row.
    simplex_table_T[0] = new_row_0

    # Adding pivot column and VB column. Adding an index.
    index = 0
    for i in range(len(simplex_table_T)):
        simplex_table_T[i].update({'pivot': 0})
        simplex_table_T[i].update({'VB': 0})
        simplex_table_T[i].update({'index': index})
        index += 1

    for i in simplex_table_T:
        print(i)

    return simplex_table_T
Ejemplo n.º 11
0
def make_initial_simplex_table(simplex_table: OrderedDict, constraints: list,
                               f_o: dict, big_m, m1, urs):
    """ 
    <summary>
        <args>
            simplex_table: type OrderedDict, se le ingresa vacío para utilizarlo para hacer la matriz de f_o y constraints.
            constraints: type lista de diccionarios, trae la información de los constraints.
            f_o: type dict, trae la información de la función objetivo.
        </args>
        Crea la simplex table inicial preparando para tener big m.
        Retorna la tabla inicial preparada.
    </summary>
    """
    if (m1):
        big_m = -big_m

    # Agarrar las variables pertinentes.
    variables = set()
    for i in constraints:
        for k in i.keys():
            variables.add(k)
    for k in f_o.keys():
        variables.add(k)

    f_o_var = set(variables) - set([x for x in f_o.keys()])
    for i in f_o_var:
        f_o.update({i: 0})

    index = 0
    for i in constraints:
        constraints_i = variables - set(i.keys())
        for j in constraints_i:
            constraints[index].update({j: 0})
        index += 1

    temp = {}
    temp.update({k: 0 for k, v in f_o.items()})
    for i in constraints:
        temp.update({k: 0 for k, v in i.items()})
    del temp['symbol']

    #
    # print('\n\n\n\n\n\n\n')
    # print(constraints)
    # print(temp)

    print('\n\n\n')
    # Add the actual variables.
    actual_vars = []
    for k, v in temp.items():
        if (is_actual_variable(k)):
            actual_vars.append(k)
    actual_vars.sort(key=lambda x: x[1:])
    for i in actual_vars:
        simplex_table.update({i: []})
    # Add the slack/excess variables.
    s_e_vars = []
    for k, v in temp.items():
        if (is_slack_excess_variable(k)):
            s_e_vars.append(k)
    s_e_vars.sort(key=lambda x: x[1:])
    for i in s_e_vars:
        simplex_table.update({i: []})
    # Add the artifitial variables.
    a_vars = []
    for k, v in temp.items():
        if (is_artifitial_variable(k)):
            a_vars.append(k)
    a_vars.sort(key=lambda x: x[1:])
    for i in a_vars:
        simplex_table.update({i: []})

    # Add the z.
    simplex_table.update({'z': []})

    # Add the c.
    simplex_table.update({'c': []})

    # Copying the information in f_p and constraints to the simplex table:
    for k, v in simplex_table.items():
        simplex_table[k].append(f_o[k])
    for k, v in simplex_table.items():
        for i in range(len(constraints)):
            simplex_table[k].append(constraints[i][k])

    # {'X1': [-2, 0.5, 1, 1], 'X2': [-3, 0.25, 3, 1], 's1': [0, 1, 0, 0], 'e2': [0, 0, -1, 0], 'a2': [-10000, 0, 1, 0], 'a3': [-10000, 0, 0, 1], 'z': [1, 0, 0, 0], 'c': [0, 4, 20, 10], 'pivot': [0, 0, 0, 0], 'VB': [0, 0, 0, 0], 'index': [0, 1, 2, 3]}

    # Transpose.
    simplex_table_T = [{} for x in range(len(simplex_table['z']))]
    for k, v in simplex_table.items():
        for i in range(len(simplex_table_T)):
            simplex_table_T[i].update({k: v[i]})

    # Add URS vars.
    urs_variables = list(zip(actual_vars, urs))
    for i in range(len(simplex_table_T)):
        for j in urs_variables:
            if (j[1] == 1):
                simplex_table_T[i].update({
                    (str(j[0]) + "''"):
                    -simplex_table_T[i][j[0]]
                })
    # for i in simplex_table_T: print(i)
    # exit()

    # new_row:
    # print("simplex_table_T: ", simplex_table_T)
    new_row_0 = []
    for i in simplex_table_T:
        contributes_to_new_row = False
        for k, v in i.items():
            if ((k[0] == 'a') and (v != 0)):
                contributes_to_new_row = True
        if contributes_to_new_row:
            new_row_0.append(i.copy())
    if (len(new_row_0) == 0):
        new_row_0 = [simplex_table_T[0].copy()]

    # print("new_row_0", new_row_0)
    new_row = []
    for i in new_row_0:
        is_first_row = False
        for k, v in i.items():
            if ((k == 'z') and (v == 1)):
                is_first_row = True
                break

        if is_first_row:
            new_row.append(i)
        else:
            new_row.append(mult_row(i, big_m))

    # Sum all the interesting rows.
    # print(new_row)
    new_row_0 = {k: 0 for k, v in new_row[0].items()}
    for i in new_row:
        for k, v in i.items():
            new_row_0[k] += v

    # Make artificial letters 0.
    for k, v in new_row_0.items():
        if (k[0] == 'a'):
            new_row_0[k] = 0

    # Making the new_row_0 the new zeroth row.
    simplex_table_T[0] = new_row_0

    # Adding pivot column and VB column. Adding an index.
    index = 0
    for i in range(len(simplex_table_T)):
        simplex_table_T[i].update({'pivot': 0})
        # simplex_table_T[i].update( {'VB':0} )
        simplex_table_T[i].update({'index': index})
        index += 1

    # Setting up VB.
    n = 1
    index = 0
    for i in simplex_table_T[1:]:
        if (i.get(f"s{n}") != None):
            simplex_table_T[index]['VB'] = simplex_table_T[index][
                f"s{n}"] * simplex_table_T[index]['c']
        elif (i.get(f"e{n}") != None):
            simplex_table_T[index]['VB'] = simplex_table_T[index][
                f"e{n}"] * simplex_table_T[index]['c']
        index += 1
        n += 1

    return simplex_table_T