Source code for emoji_unicode.models
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from .utils import unicode_to_code_point
from .pattern import EMO_VARIATION, ZWJ
JOINER_CHARS = {EMO_VARIATION, ZWJ}
[docs]class Emoji(object):
"""
Emoji is used in the process of :py:func:`.replace` unicode emojis in a text
:param str unicode: Unicode emoji
"""
def __init__(self, unicode):
self.unicode = unicode
self._code_points = None
self._map = None
@property
def code_points(self):
"""
Code points representing the unicode emoji,\
the result is normalized as by :py:func:`.normalize`
:getter: Code points representing the emoji,\
with no joiner chars and lower cased, ie: 1f3c3-1f3fc
:type: str
"""
if self._code_points is not None:
return self._code_points
self._code_points = '-'.join(
unicode_to_code_point(u)
for u in self.unicode
if u not in JOINER_CHARS
)
return self._code_points
[docs] def as_map(self):
"""
A map containing the individual unicode chars and code points.\
The code points are normalized as by :py:func:`.normalize`
:return: Sequence of tuples of the form [(unicode, code_point)]
:rtype: list
"""
if self._map is not None:
return self._map
self._map = [
(u, unicode_to_code_point(u))
for u in self.unicode
if u not in JOINER_CHARS
]
return self._map