Did I find the right examples for you? yes no

All Samples(3)  |  Call(2)  |  Derive(0)  |  Import(1)
Download  and install a dictionary file.
language: a string of the form 'll_CC'. Example: 'en_US' for English, USA
directory: the installation directory. Defaults to the
value given in config.py. After installation this is the package root of 'hyphen'
repos: the url of the dictionary repository. (Default: as declared in config.py;
after installation of PyHyphen this is LibreOffice's GIT repository .).

        def install(language, directory = config.default_dict_path,
            repos = config.default_repository, use_description = True):
    '''
    Download  and install a dictionary file.
    language: a string of the form 'll_CC'. Example: 'en_US' for English, USA
    directory: the installation directory. Defaults to the
    value given in config.py. After installation this is the package root of 'hyphen'
    repos: the url of the dictionary repository. (Default: as declared in config.py;
    after installation of PyHyphen this is LibreOffice's GIT repository .).
    '''

    # Download the dictionaries.xcu file from the LibreOffice repository if needed
    if use_description:
        # first try  full language name; it won't work in all cases...
        language_ext_name = language
        descr_url = repos + language_ext_name + '/dictionaries.xcu'

        try:
            descr_file = urlopen(descr_url)
        except URLError: 
            # OK. So try with the country code.
            language_ext_name = language[:2]
            descr_url = repos + language_ext_name + '/dictionaries.xcu'
            try: 
                descr_file = urlopen(descr_url)
            except URLError:
                descr_file = None
            
    # Parse the xml file if it is present, and extract the data.     
    if   use_description and descr_file: 
        descr_tree = ElementTree(file = descr_file)

        # Flag to catch the case that xcu file
        # does not refer to a hyphenation dict
        found_dict = False
        
        # Find the nodes containing meta data of hyphenation dictionaries
        # Iterate over all nodes
        for node in descr_tree.getiterator('node'):
            # Check if node relates to a hyphenation dict.
            # We assume this is the case if an attribute value
            # contains the substring 'hyph'
            node_values = [i[1] for i in node.items()]
            iter_values = [i for i in node_values if ('hyph' in i.lower())]
            
            # Install all available hyphen dictionairies
            for v in iter_values:
                # Found a hyphenation dict! So extract the data and construct the local record
                found_dict = True
                for property in node.getchildren():
                    prop_values = [j[1] for j in property.items()]
                    for pv in prop_values:
                        if pv.lower() == 'locations':
                            # Its only child's text is a list of strings of the form %origin%
                            # For simplicity, we only use the first filename in the list.
                            raw_dict_fn = property.getchildren()[0].text.split()[0]
                            dict_fn = raw_dict_fn[9:] # strip the prefix '%origin%'
                            dict_url = ''.join((repos, language_ext_name, '/', dict_fn))
                            break # skip any other values of this property

                        elif pv.lower() == 'locales':
                            # Its only child's text is a list of locales.
                            dict_locales = property.getchildren()[0].text.replace('-', '_').split()

                            break # skip any other values of this property


                # Install the dictionary file
                dict_str = urlopen(dict_url).read()
                filepath = directory + '/' + dict_fn
                with open(filepath, 'wb')  as dict_file:
                    dict_file.write(dict_str)

                # Save the metadata
                # Generate a record for each locale, overwrite any existing ones
                new_dict = hyphen.DictInfo(dict_locales, filepath, url = dict_url)
                for l in dict_locales:
                    hyphen.dict_info[l] = new_dict
                    
        # Catch the case that there is no hyphenation dict
        # for this language:
        if not found_dict:
            raise IOError('Cannot find hyphenation dictionary for language ' + language + '.')


    # handle the case that there is no xml metadata
    else:
        # Download the dictionary guessing its URL
        dict_fn = ''.join(('hyph_dict_', language, '.dic'))
        dict_url = ''.join((repos, dict_fn))
        dict_str = urlopen(dict_url).read()
        filepath = directory + '/' + dict_fn
        with open(filepath, 'w')  as dict_file:
            dict_file.write(dict_str)
        # Store the metadata
        new_dict = hyphen.DictInfo([language], filepath) # the URL is thus set to None.
        hyphen.dict_info[language] = new_dict
    # Save the modified metadata
    save_dict_info()
        


src/p/y/PyHyphen-2.0.4/setup.py   PyHyphen(Download)
        # Install dictionaries
        if '--no_dictionaries' not in sys.argv:
            from hyphen.dictools import install
            print('Installing dictionaries... en_US ...')
            install('en_US')
                if local_lang and local_lang != 'en_US':
                    print(local_lang + ' ')
                    install(local_lang)
                    print('Done.')
            except Exception: