mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-02 14:04:27 +00:00
Remove the IANA subtag registry parser
This is not needed now that PropertyValueAliases is used for script mapping.
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) 2012 Reece H. Dunn
|
||||
#
|
||||
# This file is part of ucd-tools.
|
||||
#
|
||||
# ucd-tools is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# ucd-tools is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with ucd-tools. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
|
||||
def fold_lines(path):
|
||||
next_line = None
|
||||
with open(path) as f:
|
||||
for line in f:
|
||||
line = line.replace('\n', '')
|
||||
if line.startswith(' '):
|
||||
next_line = '%s%s' % (next_line, line[1:])
|
||||
continue
|
||||
if next_line:
|
||||
yield next_line
|
||||
next_line = line
|
||||
|
||||
def iana_subtag_entries(path):
|
||||
tag = {}
|
||||
for line in fold_lines(path):
|
||||
if line == '%%':
|
||||
if 'Type' in tag:
|
||||
yield tag
|
||||
tag = {}
|
||||
continue
|
||||
|
||||
packed = line.split(': ')
|
||||
key = packed[0]
|
||||
value = ': '.join(packed[1:])
|
||||
|
||||
if key == 'Description':
|
||||
# Only select the first Description. This handles subtag codes
|
||||
# that have multiple descriptions (e.g. 'es' maps to "Spanish"
|
||||
# and "Castilian").
|
||||
if not key in tag.keys():
|
||||
tag[key] = value
|
||||
else:
|
||||
tag[key] = value
|
||||
yield tag
|
||||
|
||||
typemap = {
|
||||
'extlang': 'ExtLang',
|
||||
'grandfathered': 'Grandfathered',
|
||||
'language': 'Language',
|
||||
'redundant': 'Redundant',
|
||||
'region': 'Region',
|
||||
'script': 'Script',
|
||||
'variant': 'Variant',
|
||||
}
|
||||
|
||||
scopemap = {
|
||||
'collection': 'Collection',
|
||||
'macrolanguage': 'MacroLanguage',
|
||||
'special': 'Special',
|
||||
'private-use': 'PrivateUse',
|
||||
}
|
||||
|
||||
def read_iana_subtags(path):
|
||||
tags = {}
|
||||
for tag in iana_subtag_entries(path):
|
||||
if 'Subtag' in tag.keys():
|
||||
ref = tag['Subtag']
|
||||
del tag['Subtag']
|
||||
else:
|
||||
ref = tag['Tag']
|
||||
del tag['Tag']
|
||||
|
||||
if 'Scope' in tag.keys():
|
||||
if tag['Type'] != 'language':
|
||||
raise Exception('"Scope" property unexpected for Type="%s"' % tag['Type'])
|
||||
|
||||
tag['Type'] = scopemap[ tag['Scope'] ]
|
||||
del tag['Scope']
|
||||
else:
|
||||
tag['Type'] = typemap[ tag['Type'] ]
|
||||
|
||||
if '..' not in ref: # exclude private use definitions
|
||||
tags[ref] = tag
|
||||
return tags
|
||||
+1
-2
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) 2012 Reece H. Dunn
|
||||
# Copyright (C) 2012-2014 Reece H. Dunn
|
||||
#
|
||||
# This file is part of ucd-tools.
|
||||
#
|
||||
@@ -19,7 +19,6 @@
|
||||
|
||||
import os
|
||||
import sys
|
||||
import iana
|
||||
|
||||
script_map = {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user