def get_all_properties(): all_properties = list(get_css_dict().keys()) # раширить парами "свойство значение" (например "position absolute") for prop_name in all_properties: property_values = css_flat_list(prop_name, get_css_dict()) extends_sieve = (i for i in property_values if not i[1].startswith('<')) unit_sieve = (i for i in extends_sieve if not i[1].startswith('.')) all_properties.extend('{0} {1}'.format(prop_name, v[1]) for v in unit_sieve) return all_properties
PAIRS = dict([ ('bg', 'background'), # Instead of border-style: groove; ('bd', 'border'), # Instead of background (Zen CSS support) ('pg', 'page'), ('lt', 'letter'), ('tf', 'transform'), ('tr', 'transition'), ]) # названия всех свойств pro_v = list(ALL_PROPERTIES) # раширить парами "свойство значение" (например "position absolute") for prop_name in ALL_PROPERTIES: property_values = css_flat_list(prop_name) extends_sieve = (i for i in property_values if not i[1].startswith('<')) unit_sieve = (i for i in extends_sieve if not i[1].startswith('.')) pro_v.extend('{0} {1}'.format(prop_name, v[1]) for v in unit_sieve) def score(a, b): """Оценочная функция""" s = 0 # увеличивает вес свойству со значением (они разделены пробелом) if a and ' ' == a[-1]: s += 3.0 # уменьшить, если буква находится не на грницах слова if '-' in a[1:-1] or '-' in b[1:-1]: s += -2.0