Ejemplo n.º 1
0
def test_get_words_with_block():
    input_str = u'안녕'
    word = KoreanWord(input_str, compute_ethym=True)
    block = word.get_blocks_for_selected_meaning()[0]
    words = DbUtil().get_words_with_block(block)
    assert len(words) > 0
    assert input_str in words.word.values
    
Ejemplo n.º 2
0
class Columns(GridLayout):
    def __init__(self, text, **kwargs):
        super(Columns, self).__init__(size_hint_x=1, rows=2)
        self.current_block = 0
        self.carousel = Carousel(direction='right',
                                 size_hint_x=1,
                                 size_hint_y=1)
        self.carousel.bind(index=self.update_title)

        self.title_label = Label(font_name=FONT,
                                 markup=True,
                                 font_size=30,
                                 size_hint_y=0.1)

        self.update_content(text)

    def update_title(self, *kwargs):
        if len(kwargs) > 0:
            self.current_block = kwargs[1] or 0
        title = emphasize_part(self.word.string, idx=self.current_block)
        etymology_str = (' ({})'.format(
            emphasize_part(self.word.etymology, idx=self.current_block))
                         if self.word.etymology else '')
        title += etymology_str
        self.title_label.text = title

    def analyze(self, text):
        self.word = Word(text, compute_etymology=True)
        self.blocks = self.word.get_blocks_for_selected_meaning()

    def update_content(self, text):
        self.clear_widgets()
        self.carousel.clear_widgets()
        self.analyze(text)
        self.update_title()

        for block in self.blocks:
            words = DbUtil().get_words_with_block(block, exclude=self.word)
            self.carousel.add_widget(BlockColumn(block, words))

        self.add_widget(self.title_label)
        self.add_widget(self.carousel)
Ejemplo n.º 3
0
 def test_compute_suffix(self, word, expected):
     assert expected == KoreanWord(word).suffix
Ejemplo n.º 4
0
 def test_init_incorrect_etymology(self):
     with pytest.raises(ValueError):
         KoreanWord(u'안녕', etymology=u'安寧安寧')
Ejemplo n.º 5
0
 def test_init(self, string, etymology, meaning, compute_etymology):
     KoreanWord(string, etymology, meaning, compute_etymology)
Ejemplo n.º 6
0
if 'word' in form.keys():
    input_str = form["word"].value
    try:    
        language = detect_language(_u(input_str))
    except ValueError:
        language = None
        UI.render_error('Language not supported')
        

    if language == 'korean':
        from asian_word_analyzer.korean.db import DbUtil
        from asian_word_analyzer.korean.word import KoreanWord as Word
    elif language == 'thai':
        from asian_word_analyzer.thai.word import get_words_with_block
        from asian_word_analyzer.thai.word import ThaiWord as Word

    if 'Word' in locals():
        word = Word(input_str, compute_ethym=True)
        UI.render_main(word)
        blocks = word.get_blocks_for_selected_meaning()
        for block in blocks:
            words = DbUtil().get_words_with_block(block, exclude=word)
            UI.render_block(block, words)
else:
    from asian_word_analyzer.empty_word import EmptyWord
    UI.render_main(EmptyWord())

# Desert
UI.render_bottom()

Ejemplo n.º 7
0
 def analyze(self, text):
     self.word = Word(text, compute_etymology=True)
     self.blocks = self.word.get_blocks_for_selected_meaning()
Ejemplo n.º 8
0
 def test_get_words_with_block(self, input_str, exclude, input_str_expected):
     word = KoreanWord(input_str, compute_etymology=True)
     block = word.get_blocks_for_selected_meaning()[0]
     words = DbUtil().get_words_with_block(block, exclude=exclude)
     assert len(words) > 0
     assert input_str_expected == (input_str in [word[0] for word in words])
Ejemplo n.º 9
0
 def test_render_block(self):
     words = [KoreanWord(string=u'남대문', etymology=u'南大門',
                         meaning=u'(건축물) Namdaemun, the (Great) South Gate (of Seoul)')]
     ui.render_block(self.block(), words)
Ejemplo n.º 10
0
 def korean_word():
     return KoreanWord(u'남대문', u'南大門',
                       u'(건축물) Namdaemun, the (Great) South Gate (of Seoul)')