예제 #1
0
파일: M_Link.py 프로젝트: xiaochang91/tapyr
 def _m_default_ui_name(cls, base_name):
     result = base_name
     Roles = getattr(cls, "Roles", [])
     if Roles and all(R.E_Type for R in Roles):
         rn_pat = Regexp \
             ( "^"
             + "_(.+)_".join (R.E_Type.type_base_name for R in Roles)
             + "$"
             )
         if rn_pat.match(base_name):
             cs = rn_pat.groups()
             ns = tuple(R.E_Type.ui_name for R in Roles)
             result = filtered_join \
                 (" ", itertools.chain (* paired (ns, cs)))
     return result
예제 #2
0
파일: M_Link.py 프로젝트: Tapyr/tapyr
 def _m_default_ui_name (cls, base_name) :
     result = base_name
     Roles  = getattr (cls, "Roles", [])
     if Roles and all (R.E_Type for R in Roles) :
         rn_pat = Regexp \
             ( "^"
             + "_(.+)_".join (R.E_Type.type_base_name for R in Roles)
             + "$"
             )
         if rn_pat.match (base_name) :
             cs     = rn_pat.groups ()
             ns     = tuple (R.E_Type.ui_name for R in Roles)
             result = filtered_join \
                 (" ", itertools.chain (* paired (ns, cs)))
     return result
예제 #3
0
파일: UCD.py 프로젝트: JPilarr/tapyr
    def create_map \
            ( self
            , ignore_categories = {"Cc", "Cs", "Co", "Cn", "Zl"}
            , ignore_prefixes   = _ignore_prefixes
            ) :
        """Create a map char-id -> char-code.

        `char-id` is a valid Python identifier derived from `unidoce.name`.
        """
        from _TFL.Ascii          import sanitized_filename
        from _TFL.formatted_repr import formatted_repr
        from _TFL.Regexp         import Regexp, re
        import unicodedata
        ignore_categories = Regexp ("|".join (sorted (ignore_categories)))
        ignore_prefixes   = Regexp ("|".join (sorted (ignore_prefixes)))
        result            = {}
        for i in range (0x1, 0xf000) :
            c   = chr (i)
            cat = unicodedata.category (c)
            if ignore_categories.match (cat) :
                continue
            try :
                ucd_name    = unicodedata.name (c)
            except ValueError :
                continue
            id = sanitized_filename (ucd_name.lower ()).replace ("-", "_")
            if not ignore_prefixes.search (id) :
                result [id] = r"u%04x" % i
        result = "\n".join \
            ( ( "# -*- coding: utf-8 -*-"
              , "# Copyright (C) 2020 Mag. Christian Tanzer All rights reserved"
              , "# Generated automatically, do not change manually!"
              , ""
              , "id_to_chr_map = \\"
              , formatted_repr (result).replace (": 'u", r": '\u")
              )
            )
        return result