def set_season_labels(serie_page, season_page, serie_name, season_num):
    """ setting labels """

    datas = serie_page.get()

    #en
    enlabel = __lang_patterns__[u"en"][u"label"].format(name = serie_name, ordi = get_en_ordinal(season_num))
    wd_lib.set_for_lang(season_page, serie_name, u'en', enlabel, u"standard label setting")
    
    #fr
    if "fr" in datas["labels"]:
        frseriename = datas["labels"]["fr"]
    else:
        frseriename = serie_name

    frlabel = u'{name} saison {num}'.format(name = frseriename, num = season_num)
    wd_lib.set_for_lang(season_page, serie_name, u'fr', frlabel, u"standard label setting") 

    frdescription = u'saison {num} de la série télévisée « {name} »'.format(name = frseriename, num = season_num)
    if frseriename != serie_name:
        # correct a label set in english name when we got a french one
        wrongdescription = u'saison {num} de la série télévisée « {name} »'.format(name = serie_name, num = season_num)
    
        wd_lib.set_for_lang(season_page, wrongdescription, 
                           'fr', frdescription, u"standard fr label setting",
                            kind = 'descriptions')
        # end correction block
    
    wd_lib.set_for_lang(season_page, serie_name, 
                        'fr', frdescription, u"standard fr label setting", 
                        kind = 'descriptions')
def set_season_labels(page, serie_name, season_num, year):
    """ setting labels """
    enlabel = u'{name} in {{year}}'.format(name = serie_name, year = year)

    wd_lib.set_for_lang(page, serie_name, 'en', enlabel, "standard label setting")
    frlabel = u'{name} saison {num}'.format(name = serie_name, num = year)
    
    wd_lib.set_for_lang(page, serie_name, 'fr', frlabel, "standard label setting") 

    fr_description = u'saison n°{num} de la série télévisée « {name} » en {year}'\
            .format(name = serie_name, num = season_num, year = year)
    wd_lib.set_for_lang(page, serie_name, 'fr', fr_description, u"standard fr label setting", kind = 'description')
    
    en_description = u'{ordi} season of the {name} TV show'.format(name = serie_name, ordi = get_en_ordinal(season_num))
    wd_lib.set_for_lang(page, serie_name, 'en', en_description, u"standard fr label setting", kind = 'description')
def main():
	""" main script function """
	def extr_mini_maxi(titl):
		""" extract bounds from title"""
		res = re.split(u"[()-]", titl)
		return res[1], res[2]

	items  = [ item_by_title("fr", title)  for title in MAINS ]
	ranges = [ extr_mini_maxi(title) for title in MAINS ]

	# items : the main articles, 7 main ranges, separated into subranges each

	all_items = items
	all_ranges = ranges

	make_sequence(items)

	for (item, rang_) in zip(items, ranges):
		(min_, max_) = rang_
		prefix = min_[0:-4]
		print ("====================='{}'========================".format(prefix))
		def gen_title(lrange):
			""" title gen"""
			mi_ = ('{}{}'.format(prefix, lrange.split(" ")[0]))
			ma_ = ('{}{}'.format(prefix, lrange.split(" ")[1]))
			# import pdb ; pdb.set_trace()
			return frtitle(mi_, ma_)
		titles = [  gen_title(lrange) for lrange in LESSER.split("\n") ]
		
		items  = [ item_by_title("fr", title) for title in titles ]
		ranges = [ extr_mini_maxi(title) for title in titles ]

		make_sequence(items)
		# suboptimal
		all_items = all_items + items
		all_ranges = all_ranges + ranges

	for (item, (min_, max_)) in zip(all_items, all_ranges):
		set_for_lang( item, u"Table des caractères Unicode", "fr", label(min_, max_), "ambiguity and label correction")
		set_for_lang( item, u"", "en", enlabel(min_, max_), "ambiguity and label correction")

		# correction of previous bug as it seems
		set_for_lang( item, u"Unicode characters from 100000 to 10FFFF codepoints",\
	       			"en", enlabel(min_, max_), "ambiguity and label correction")