def add_word(word): from text_indexer.orm.base import session db_word = session.query(Word).filter_by(word=word).first() if not db_word: db_word = Word(word) session.add(db_word) session.commit() return db_word
def add_relation(name, first, second): from text_indexer.orm.word import Word from text_indexer.orm.base import session db_first = Word.add_word(first) db_second = Word.add_word(first) relation = Relation(name) session.add(relation) session.commit() word_relation = WordRelationAssociation(relation, db_first, db_second) session.add(word_relation) session.commit()
def load_file_into_song(self, path, db_song): """ This function loads the song into the db @param path: The path of the song @param db_song: The instance of the song in the db """ f = open(path, "r") text = f.read() f.close() words = [] stanzas = text.split("\n\n") rows = 1 line_number = 1 number_in_song = 1 for stanza_number, stanza in enumerate(stanzas): stanza_line_number = 1 rows = stanza.split("\n") for row in rows: row_word_number = 1 words = re.findall(r"(\b[^\s]+\b)", row) for word in words: self._create_word_in_DB( word, db_song, stanza_number, row_word_number, line_number, stanza_line_number, number_in_song ) # print "Add word %s to song %s" % (word, db_song.name) # print "line", line_number # print "stanza", stanza_number # print "line number in stanza", stanza_line_number # print "word number in row", row_word_number # print "="*30 row_word_number += 1 number_in_song += 1 stanza_line_number += 1 line_number += 1 for word in self.words_to_add.values(): session.add(word) session.commit() for word_position in self.word_positions: session.add(word_position) session.commit()
def add_expression(expression): from text_indexer.orm.word import Word from text_indexer.orm.base import session db_words = [] for word in expression.split(' '): db_word = session.query(Word).filter_by(word=word).first() if not db_word: db_word = Word(word=word) session.add(db_word) db_words.append(db_word) session.commit() db_expression = Expression(name=expression) session.add(db_expression) session.commit() number=1 for db_word in db_words: word_expression = WordExpressionAssocaition(word_id=db_word.id, expression_id=db_expression.id, place=number) session.add(word_expression) number+=1 session.commit() return db_expression
def add_group(name): from text_indexer.orm.base import session db_group = Group(name=name) session.add(db_group) session.commit() return db_group