dosage/scripts/mklanguages.py

44 lines
1.3 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# SPDX-License-Identifier: MIT
2016-10-28 22:21:41 +00:00
# Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs
2016-04-12 22:52:16 +00:00
# Copyright (C) 2012-2014 Bastian Kleineidam
# Copyright (C) 2015-2020 Tobias Gruetzmacher
2016-04-12 22:52:16 +00:00
'''update languages.py from pycountry'''
import os
import codecs
from dosagelib.scraper import scrapers
2016-04-12 22:52:16 +00:00
def main():
"""Update language information in dosagelib/languages.py."""
basepath = os.path.dirname(os.path.dirname(__file__))
fn = os.path.join(basepath, 'dosagelib', 'languages.py')
with codecs.open(fn, 'w', 'utf-8') as f:
f.write('# SPDX-License-Identifier: MIT\n')
f.write('# ISO 693-1 language codes from pycountry\n')
f.write('# This file is automatically generated, DO NOT EDIT!\n')
lang = get_used_languages()
write_languages(f, lang)
def get_used_languages():
2018-05-22 22:54:40 +00:00
languages = {}
for scraperobj in scrapers.get():
2018-05-22 22:54:40 +00:00
lang = scraperobj.lang
if lang not in languages:
languages[lang] = scraperobj.language()
return languages
2016-04-12 22:52:16 +00:00
2020-10-01 16:18:31 +00:00
def write_languages(f, langs):
"""Write language information."""
f.write("Languages = {%s" % os.linesep)
2020-10-01 16:18:31 +00:00
for lang in sorted(langs):
f.write(" %r: %r,%s" % (lang, langs[lang], os.linesep))
f.write("}%s" % os.linesep)
if __name__ == '__main__':
main()