Skip to content

Commit

Permalink
add kHanyuPinyin
Browse files Browse the repository at this point in the history
  • Loading branch information
tony committed Jun 5, 2017
1 parent 0e30459 commit d7c94c8
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
17 changes: 16 additions & 1 deletion tests/test_bootstrap.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# -*- coding: utf8 - *-

from unihan_db import bootstrap
from unihan_db.tables import Unhn, kDefinition, kCantonese, kMandarin, Base
from unihan_db.tables import (Base, Unhn, UnhnLocation, UnhnReading,
kCantonese, kDefinition, kHanyuPinyin, kMandarin)


def test_reflect_db(tmpdb_file, unihan_options, metadata):
Expand Down Expand Up @@ -54,4 +55,18 @@ def test_import_unihan_raw(zip_file, session, engine, unihan_options):
hant=defi['zh-Hant'],
))

if 'kHanyuPinyin' in char:
for defi in char['kHanyuPinyin']:
k = kHanyuPinyin()
for loc in defi['locations']:
k.locations.append(UnhnLocation(
volume=loc['volume'],
page=loc['page'],
character=loc['character'],
virtual=loc['virtual'],
))
for reading in defi['readings']:
k.readings.append(UnhnReading(reading=reading))
c.kHanyuPinyin.append(k)

session.commit()
28 changes: 28 additions & 0 deletions unihan_db/tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class Unhn(Base):
kDefinition = relationship("kDefinition", back_populates="char")
kCantonese = relationship("kCantonese", back_populates="char")
kMandarin = relationship("kMandarin", back_populates="char")
kHanyuPinyin = relationship("kHanyuPinyin", back_populates="char")


class kDefinition(Base):
Expand Down Expand Up @@ -72,3 +73,30 @@ class kMandarin(Base):
hant = Column(String(10))

char = relationship("Unhn")


class kHanyuPinyin(Base):
__tablename__ = 'kHanyuPinyin'
id = Column(Integer, primary_key=True)
char_id = Column(Integer, ForeignKey('Unhn.id'))
locations = relationship("UnhnLocation")
readings = relationship("UnhnReading")

char = relationship("Unhn")


class UnhnLocation(Base):
__tablename__ = 'UnhnLocation'
id = Column(Integer, primary_key=True)
kHanyuPinyin_id = Column(Integer, ForeignKey('kHanyuPinyin.id'))
volume = Column(Integer)
page = Column(Integer)
character = Column(Integer)
virtual = Column(Integer)


class UnhnReading(Base):
__tablename__ = 'UnhnReading'
id = Column(Integer, primary_key=True)
kHanyuPinyin_id = Column(Integer, ForeignKey('kHanyuPinyin.id'))
reading = Column(String(24))

0 comments on commit d7c94c8

Please sign in to comment.