From 90d096eeb75ef1695b990a10833a0c72a2aa953f Mon Sep 17 00:00:00 2001 From: olivier Date: Mon, 15 Feb 2010 23:01:33 +0000 Subject: [PATCH] turn ethnic_groups into a simple enumeration, ensure ethnic group name uniqueness git-svn-id: http://svn.parisson.org/svn/crem@158 3bf09e05-f825-4182-b9bc-eedd7160adf0 --- trunk/docref/crem.sql | 5 +- trunk/docref/docref.odt | Bin 65176 -> 65172 bytes trunk/import/migration/tasks/core.py | 30 +++++----- trunk/import/migration/tasks/ethnic.py | 6 +- trunk/import/migration/tasks/geoethno.py | 2 +- trunk/import/migration/tasks/items.py | 2 +- trunk/import/migration/tasks/unaccent.py | 71 +++++++++++++++++++++++ 7 files changed, 96 insertions(+), 20 deletions(-) create mode 100644 trunk/import/migration/tasks/unaccent.py diff --git a/trunk/docref/crem.sql b/trunk/docref/crem.sql index 4c4fcb1..c07478d 100644 --- a/trunk/docref/crem.sql +++ b/trunk/docref/crem.sql @@ -170,13 +170,14 @@ CREATE TABLE location_relations ( CREATE TABLE ethnic_groups ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, - name VARCHAR(250) NOT NULL + value VARCHAR(250) NOT NULL UNIQUE ) CHARACTER SET='utf8' ENGINE=InnoDB; CREATE TABLE ethnic_group_aliases ( ethnic_group_id INTEGER NOT NULL, - name VARCHAR(250) NOT NULL, + value VARCHAR(250) NOT NULL, + UNIQUE(ethnic_group_id, value), FOREIGN KEY(ethnic_group_id) REFERENCES ethnic_groups (id) ON DELETE CASCADE ) CHARACTER SET='utf8' ENGINE=InnoDB; diff --git a/trunk/docref/docref.odt b/trunk/docref/docref.odt index 1373847645371a11e83f5080851315798d7ef347..76207897ffdd7c0bca2dc84104f4db422a3f0619 100644 GIT binary patch delta 23625 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 bpnQjett1Qcc5NUa-o0&sZ-YMG|1JF=i*Al! delta 23623 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 je;= "2.5": + # use __missing__ where available + __missing__ = mapchar + else: + # otherwise, use standard __getitem__ hook (this is slower, + # since it's called for each character) + __getitem__ = mapchar + + +_map = UnaccentedMap() + +def unaccent(str): + return str.translate(_map) + +def unaccent_icmp(str1, str2): + str1 = unaccent(str1).lower() + str2 = unaccent(str2).lower() + if str1 > str2: + return 1 + + if str1 < str2: + return -1 + + return 0 -- 2.39.5