from tf.fabric import Fabric

ETCBC = 'hebrew/etcbc4c'
PHONO = 'hebrew/phono'
TF = Fabric( modules=[ETCBC, PHONO], silent=False )

api = TF.load('''
    book chapter verse
    sp nu gn ps vt vs st
    otype
    det
    g_word_utf8 trailer_utf8
    lex_utf8 lex voc_utf8
    g_prs_utf8 g_uvf_utf8
    prs_gn prs_nu prs_ps g_cons_utf8
    gloss 
''')

api.makeAvailableIn(globals())

"""
Explanation: Text-Fabric Api 활용예제 3
End of explanation
"""


verseNode = T.nodeFromSection(('Genesis', 1, 2))
wordsNode = L.d(verseNode, otype='word')
print(wordsNode)

"""
Explanation: 성서 본문을 큰 단위의 word node가 아닌 각 단어 요소들로 잘라서 출력함
창세기 1:2 연습
End of explanation
"""


F.g_word_utf8.v(wordsNode[0])

"""
Explanation: Text feature가 아닌 feature의 g_word_utf8의 값을 이용하여 첫 번째 word node 출력
End of explanation
"""


"""절수 추가"""
verse = str(T.sectionFromNode(verseNode)[2])

for w in wordsNode:
    verse += F.g_word_utf8.v(w)
    if F.trailer_utf8.v(w):
        verse += F.trailer_utf8.v(w)

print(verse)

"""
Explanation: 위를 응용하여 창세기 1:2 전체를 반복문을 이용하여 출력
F.trailer_utf8은 글자 사이에 간격이 있는지, 혹은 특수 문자가 있는지를 판단하는 값이다. 따라서 문장을 이을 때 필수적
End of explanation
"""


chpNode = T.nodeFromSection(('Genesis', 1))
verseNode = L.d(chpNode, otype='verse')
verse = ""

for v in verseNode:
    verse += str(T.sectionFromNode(v)[2])
    wordsNode = L.d(v, otype='word')
    for w in wordsNode:
        verse += F.g_word_utf8.v(w)
        if F.trailer_utf8.v(w):
            verse += F.trailer_utf8.v(w)

print(verse)

"""
Explanation: 창세기 1장 전체 출력
End of explanation
"""


