:py:mod:`dissect.esedb.lcmapstring` =================================== .. py:module:: dissect.esedb.lcmapstring Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: dissect.esedb.lcmapstring.MapFlags dissect.esedb.lcmapstring.SCRIPT dissect.esedb.lcmapstring.CASE Functions ~~~~~~~~~ .. autoapisummary:: :nosignatures: dissect.esedb.lcmapstring.map_string .. py:class:: MapFlags Bases: :py:obj:`enum.IntFlag` Support for integer-based Flags .. py:attribute:: NORM_IGNORECASE :value: 1 .. py:attribute:: NORM_IGNORENONSPACE :value: 2 .. py:attribute:: NORM_IGNORESYMBOLS :value: 4 .. py:attribute:: LINGUISTIC_IGNORECASE :value: 16 .. py:attribute:: LINGUISTIC_IGNOREDIACRITIC :value: 32 .. py:attribute:: NORM_IGNOREKANATYPE :value: 65536 .. py:attribute:: NORM_IGNOREWIDTH :value: 131072 .. py:attribute:: NORM_LINGUISTIC_CASING :value: 134217728 .. py:attribute:: LCMAP_LOWERCASE :value: 256 .. py:attribute:: LCMAP_UPPERCASE :value: 512 .. py:attribute:: LCMAP_TITLECASE :value: 768 .. py:attribute:: LCMAP_SORTKEY :value: 1024 .. py:attribute:: LCMAP_BYTEREV :value: 2048 .. py:attribute:: LCMAP_HIRAGANA :value: 1048576 .. py:attribute:: LCMAP_KATAKANA :value: 2097152 .. py:attribute:: LCMAP_HALFWIDTH :value: 4194304 .. py:attribute:: LCMAP_FULLWIDTH :value: 8388608 .. py:attribute:: LCMAP_LINGUISTIC_CASING :value: 16777216 .. py:attribute:: LCMAP_SIMPLIFIED_CHINESE :value: 33554432 .. py:attribute:: LCMAP_TRADITIONAL_CHINESE :value: 67108864 .. py:attribute:: LCMAP_SORTHANDLE :value: 536870912 .. py:attribute:: LCMAP_HASH :value: 262144 .. py:attribute:: SORT_STRINGSORT :value: 4096 .. py:attribute:: SORT_DIGITSASNUMBERS :value: 8 .. py:class:: SCRIPT Bases: :py:obj:`enum.IntEnum` Enum where members are also (and must be) ints .. py:attribute:: UNSORTABLE :value: 0 .. py:attribute:: NONSPACE_MARK :value: 1 .. py:attribute:: EXPANSION :value: 2 .. py:attribute:: EASTASIA_SPECIAL :value: 3 .. py:attribute:: JAMO_SPECIAL :value: 4 .. py:attribute:: EXTENSION_A :value: 5 .. py:attribute:: PUNCTUATION :value: 6 .. py:attribute:: SYMBOL_1 :value: 7 .. py:attribute:: SYMBOL_2 :value: 8 .. py:attribute:: SYMBOL_3 :value: 9 .. py:attribute:: SYMBOL_4 :value: 10 .. py:attribute:: SYMBOL_5 :value: 11 .. py:attribute:: SYMBOL_6 :value: 12 .. py:attribute:: DIGIT :value: 13 .. py:attribute:: LATIN :value: 14 .. py:attribute:: GREEK :value: 15 .. py:attribute:: CYRILLIC :value: 16 .. py:attribute:: KANA :value: 34 .. py:attribute:: HEBREW :value: 40 .. py:attribute:: ARABIC :value: 41 .. py:attribute:: PUA_FIRST :value: 169 .. py:attribute:: PUA_LAST :value: 175 .. py:attribute:: CJK_FIRST :value: 192 .. py:attribute:: CJK_LAST :value: 239 .. py:class:: CASE Bases: :py:obj:`enum.IntFlag` Support for integer-based Flags .. py:attribute:: FULLWIDTH :value: 1 .. py:attribute:: FULLSIZE :value: 2 .. py:attribute:: SUBSCRIPT :value: 8 .. py:attribute:: UPPER :value: 16 .. py:attribute:: KATAKANA :value: 32 .. py:attribute:: COMPR_2 :value: 64 .. py:attribute:: COMPR_4 :value: 128 .. py:attribute:: COMPR_6 :value: 192 .. py:function:: map_string(value: str, flags: MapFlags, locale: str) -> bytes Very basic Python implementation of LCMapStringEx, only supporting sorting keys. Currently only supports one hardcoded sorting table (the default) and the basic character types. :param value: The string to map to a sorting key. :param flags: The flags passed to LCMapStringEx :param locale: The locale to use for mapping. :returns: A sorting key of the given input that should be compatible with LCMapStringEx. :raises NotImplementedError: If an unsupported flag or character is encountered.