コード例 #1
0
ファイル: fsa.py プロジェクト: stormytrail/k2
 def _init_properties(self) -> None:
     if self.arcs.num_axes() == 2:
         properties = _k2.get_fsa_basic_properties(self.arcs)
     else:
         properties = _k2.get_fsa_vec_basic_properties(self.arcs)
     self._properties = properties
     if properties & 1 != 1:
         raise ValueError(
             "Fsa is not valid, properties are: {} = {}, arcs are: {}".
             format(properties, _k2.fsa_properties_as_str(properties),
                    str(self.arcs)))
コード例 #2
0
def get_properties(fsa: Fsa) -> int:
    '''Get the properties of an FSA.

    Note that the properties of an FSA is encoded into an integer.
    The integer is expected to be passed to one of the `is_*` functions
    in this module, e.g., :func:`is_arc_sorted`.

    Args:
      fsa:
        The input FSA.

    Returns:
      An integer which encodes the properties of the given FSA.
    '''
    return _k2.get_fsa_basic_properties(fsa.arcs)
コード例 #3
0
ファイル: fsa.py プロジェクト: zhu-han/k2
    def properties(self) -> int:
        # instead of accessing self._properties, we use
        # self.__dict__.{get,set}('_properties') in order to
        # avoid calling __getattr__ and any complexity involved in that.
        properties = self.__dict__.get('_properties', None)
        if properties is not None:
            return properties  # Return cached properties.

        if self.arcs.num_axes() == 2:
            properties = _k2.get_fsa_basic_properties(self.arcs)
        else:
            properties = _k2.get_fsa_vec_basic_properties(self.arcs)
        self.__dict__['_properties'] = properties
        if properties & fsa_properties.VALID != 1:
            raise ValueError(
                'Fsa is not valid, properties are: {} = {}, arcs are: {}'.
                format(properties, fsa_properties.to_str(properties),
                       str(self.arcs)))
        return properties
コード例 #4
0
ファイル: fsa.py プロジェクト: lql0716/k2
 def _init_properties(self) -> None:
     if self.arcs.num_axes() == 2:
         properties = _k2.get_fsa_basic_properties(self.arcs)
     else:
         properties = _k2.get_fsa_vec_basic_properties(self.arcs)
     self._properties = properties