Changeset 192:64d5e98cf60a

Show
Ignore:
Timestamp:
07/19/09 22:00:18 (14 months ago)
Author:
rgrp
Branch:
default
convert_revision:
svn:0ead1229-0713-0410-96cd-f668dbfad531/trunk@278
Message:

[model][s]: convert to unicode in model (String to Unicode, Text to UnicodeText?) and make necessary changes in related files.

Location:
shakespeare
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • shakespeare/migration/versions/001_pre_migrate_model.py

    r190 r192  
    66work_table = Table('work', metadata, 
    77    Column('id', Integer, primary_key=True), 
    8     Column('name', String(255)), 
    9     Column('title', String(255)), 
    10     Column('creator', String(255)), 
    11     Column('notes', Text), 
     8    Column('name', Unicode(255)), 
     9    Column('title', Unicode(255)), 
     10    Column('creator', Unicode(255)), 
     11    Column('notes', UnicodeText), 
    1212    ) 
    1313 
    1414material_table = Table('material', metadata, 
    1515    Column('id', Integer, primary_key=True), 
    16     Column('name', String(255)), 
     16    Column('name', Unicode(255)), 
    1717    Column('work_id', Integer, ForeignKey('work.id')), 
    18     Column('title', String(255)), 
    19     Column('creator', String(255)), 
    20     Column('notes', Text), 
    21     Column('format', Text), 
     18    Column('title', Unicode(255)), 
     19    Column('creator', Unicode(255)), 
     20    Column('notes', UnicodeText), 
     21    Column('format', UnicodeText), 
    2222    # python package it lives in, if any 
    23     Column('src_pkg', Text), 
     23    Column('src_pkg', UnicodeText), 
    2424    # url (file or web) or standard (unix) file path 
    25     Column('src_locator', Text), 
     25    Column('src_locator', UnicodeText), 
    2626    ) 
    2727 
     
    2929    Column('id', Integer, primary_key=True), 
    3030    Column('material_id', Integer, ForeignKey('material.id')), 
    31     Column('word', String(50)), 
     31    Column('word', Unicode(50)), 
    3232    Column('freq', Integer), 
    3333    ) 
  • shakespeare/model/dm.py

    r186 r192  
    22Domain model 
    33""" 
    4 from sqlalchemy import Column, MetaData, Table, types, ForeignKey 
    5 from sqlalchemy import orm 
     4from sqlalchemy import Column, Table, ForeignKey 
     5from sqlalchemy.types import * 
    66from sqlalchemy.orm import relation, backref 
    77 
     
    1111 
    1212work_table = Table('work', metadata, 
    13     Column('id', types.Integer, primary_key=True), 
    14     Column('name', types.String(255)), 
    15     Column('title', types.String(255)), 
    16     Column('creator', types.String(255)), 
    17     Column('notes', types.Text), 
     13    Column('id', Integer, primary_key=True), 
     14    Column('name', Unicode(255)), 
     15    Column('title', Unicode(255)), 
     16    Column('creator', Unicode(255)), 
     17    Column('notes', UnicodeText), 
    1818    ) 
    1919 
    2020material_table = Table('material', metadata, 
    21     Column('id', types.Integer, primary_key=True), 
    22     Column('name', types.String(255)), 
    23     Column('work_id', types.Integer, ForeignKey('work.id')), 
    24     Column('title', types.String(255)), 
    25     Column('creator', types.String(255)), 
    26     Column('notes', types.Text), 
    27     Column('format', types.Text), 
     21    Column('id', Integer, primary_key=True), 
     22    Column('name', Unicode(255)), 
     23    Column('work_id', Integer, ForeignKey('work.id')), 
     24    Column('title', Unicode(255)), 
     25    Column('creator', Unicode(255)), 
     26    Column('notes', UnicodeText), 
     27    Column('format', UnicodeText), 
    2828    # python package it lives in, if any 
    29     Column('src_pkg', types.Text), 
     29    Column('src_pkg', UnicodeText), 
    3030    # url (file or web) or standard (unix) file path 
    31     Column('src_locator', types.Text), 
     31    Column('src_locator', UnicodeText), 
    3232    ) 
    3333 
    3434# TODO: indices on word and occurences 
    3535statistic_table = Table('statistic', metadata, 
    36     Column('id', types.Integer, primary_key=True), 
    37     Column('material_id', types.Integer, ForeignKey('material.id')), 
    38     Column('word', types.String(50)), 
    39     Column('freq', types.Integer), 
     36    Column('id', Integer, primary_key=True), 
     37    Column('material_id', Integer, ForeignKey('material.id')), 
     38    Column('word', Unicode(50)), 
     39    Column('freq', Integer), 
    4040    ) 
    4141 
  • shakespeare/stats.py

    r155 r192  
    4747        for k in stats: 
    4848            model.Statistic(text=material, 
    49                     word=k, 
     49                    word=unicode(k, 'utf8', 'ignore'), 
    5050                    freq=stats[k] 
    5151                    ) 
  • shakespeare/tests/__init__.py

    r160 r192  
    3030 
    3131test_file = os.path.join(conf_dir, 'test.ini') 
    32 cmd = paste.script.appinstall.SetupCommand('setup-app') 
    33 cmd.run([test_file]) 
     32# cmd = paste.script.appinstall.SetupCommand('setup-app') 
     33# cmd.run([test_file]) 
     34import shakespeare 
     35shakespeare.register_config(test_file) 
     36import shakespeare.model as model 
     37model.repo.rebuild_db() 
    3438 
    3539sonnet18_text = \ 
    36 '''Shall I compare thee to a summer's day? 
     40u'''Shall I compare thee to a summer's day? 
    3741Thou art more lovely and more temperate: 
    3842Rough winds do shake the darling buds of May, 
     
    5458 
    5559class TestData: 
    56     name = 'test_sonnet18' 
    57     name2 = 'test_sonnet18_2' 
     60    name = u'test_sonnet18' 
     61    name2 = u'test_sonnet18_2' 
    5862 
    5963    @classmethod 
     
    6367        if not sonnet18_work: 
    6468            sonnet18_work = model.Work(name=self.name, 
    65                     title='Sonnet 18', 
    66                     creator='William Shakespeare' 
     69                    title=u'Sonnet 18', 
     70                    creator=u'William Shakespeare' 
    6771                    ) 
    6872        sonnet18 = model.Material.by_name(self.name) 
    6973        if not sonnet18: 
    7074            sonnet18 = model.Material(name=self.name, 
    71                     title='Sonnet 18 (First Edition)', 
     75                    title=u'Sonnet 18 (First Edition)', 
    7276                    work=sonnet18_work, 
    7377                    ) 
     
    8589        if not sonnet18: 
    8690            sonnet18 = model.Material(name=self.name2, 
    87                     title='Sonnet 18 Duplicate', 
     91                    title=u'Sonnet 18 Duplicate', 
    8892                    work=sonnet18_work 
    8993                    ) 
  • shakespeare/tests/functional/test_text.py

    r163 r192  
    77    @classmethod 
    88    def setup_class(cls): 
    9         text = model.Material.byName('tempest_gut') 
     9        text = model.Material.byName(u'tempest_gut') 
    1010        if text is None: 
    1111            print 'Adding items' 
    12             import shksprdata.load 
    13             shksprdata.load.LoadTexts.load_texts() 
     12            import shksprdata.cli 
     13            shksprdata.cli.LoadTexts.load_texts() 
    1414            model.Session.flush() 
    1515            model.Session.remove() 
  • shakespeare/tests/test_model.py

    r171 r192  
    55    @classmethod 
    66    def setup_class(self): 
    7         self.name = 'test-123' 
    8         self.title = 'Hamlet' 
     7        self.name = u'test-123' 
     8        self.title = u'Hamlet' 
    99        work = model.Work( 
    1010            name=self.name, 
     
    1313            title=self.title, 
    1414            work=work, 
    15             src_pkg='shksprdata', 
    16             src_locator='/gutenberg/phoenix_and_the_turtle_gut.txt' 
     15            src_pkg=u'shksprdata', 
     16            src_locator=u'/gutenberg/phoenix_and_the_turtle_gut.txt' 
    1717            ) 
    1818 
     
    5555    @classmethod 
    5656    def setup_class(self): 
    57         self.name = 'test-123' 
    58         self.title = 'Hamlet' 
     57        self.name = u'test-123' 
     58        self.title = u'Hamlet' 
    5959        self.text = model.Material(name=self.name, title=self.title) 
    60         self.word = 'jones' 
     60        self.word = u'jones' 
    6161        self.freq = 5 
    6262        self.cc1 = model.Statistic( 
  • shakespeare/tests/test_search.py

    r126 r192  
    3434        assert len(out) == 2 
    3535        mset1 = out[0] 
    36         exp = "Shall I compare thee to a summer's day" 
     36        exp = u"Shall I compare thee to a summer's day" 
    3737        assert mset1.document.get_data().startswith(exp) 
    3838     
     
    4141        mset1 = out[1] 
    4242        # 'But thy eternal summer ... 
    43         exp = "But thy eternal summer shall not fade,\nNor lose possession of that fair thou ow'st," 
     43        exp = u"But thy eternal summer shall not fade,\nNor lose possession of that fair thou ow'st," 
    4444        assert mset1.document.get_data().startswith(exp) 
    4545     
  • shakespeare/tests/test_stats.py

    r163 r192  
    2727 
    2828    def test_get_stats(self): 
    29         simpletext = 'Death death dead love loved loving' 
     29        simpletext = u'Death death dead love loved loving' 
    3030        out = self.stats.analyze(StringIO.StringIO(simpletext)) 
    3131        assert len(out) == 3 
     
    3535 
    3636    def test_freq_nonexistent(self): 
    37         nonexistent_word = 'abdfakfjadf' 
     37        nonexistent_word = u'abdfakfjadf' 
    3838        freq = self.stats.freq(self.text, nonexistent_word) 
    3939        assert freq == 0 
     
    4141    def test_statsify(self): 
    4242        stats_fixture(self.text) 
    43         word = 'summer' 
     43        word = u'summer' 
    4444        freq = self.stats.freq(self.text, word) 
    4545        assert freq == 3 
     
    6262        stats_fixture(self.text) 
    6363        stats_fixture(self.text2) 
    64         stats = self.stats.word_stats('summer') 
     64        stats = self.stats.word_stats(u'summer') 
    6565        assert len(stats) == 2 
    6666        assert stats[0].text.name == self.text.name