Beispiel #1
0
# Import from itools
from itools.csv import CSVFile, Table, UniqueError
from itools.csv.table import parse_table, unfold_lines
from itools.datatypes import Date, Integer, Unicode, URI, String
from itools.fs import lfs
from itools.handlers import RODatabase

TEST_DATA_1 = """python,http://python.org/,52343,2003-10-23
ruby,http://ruby-lang.org/,42352,2001-03-28"""

TEST_DATA_2 = 'one,two,three\nfour,five,six\nseven,eight,nine'

TEST_SYNTAX_ERROR = '"one",,\n,"two",,\n,,"three"'

ro_database = RODatabase(fs=lfs)


class Languages(CSVFile):

    columns = ['name', 'url', 'number', 'date']
    schema = {'name': Unicode, 'url': URI, 'number': Integer, 'date': Date}


class Numbers(CSVFile):

    columns = ['one', 'two', 'three']
    schema = {'one': Unicode, 'two': Unicode, 'three': Unicode}


class CSVTestCase(TestCase):
Beispiel #2
0
# XXX This code does not take into account changes in the filesystem once a
# domain has been registered/loaded.

domains = {}


def register_domain(name, locale_path):
    if name not in domains:
        domains[name] = Domain(locale_path)


def get_domain(name):
    return domains[name]


database = RODatabase()


class Domain(dict):
    def __init__(self, uri):
        folder = database.get_handler(uri)
        for key in folder.get_handler_names():
            if key[-3:] == '.mo':
                language = key[:-3]
                self[language] = folder.get_handler(key)

    def gettext(self, message, language):
        if language not in self:
            return message
        handler = self[language]
        return handler.gettext(message)