Source code for advertools.ad_create

[docs]def ad_create(template, replacements, fallback, max_len=30): """Insert each of the replacement strings in its place within template Parameters ---------- template : a string format template, using braces repls : replacements string to be inserted in template fallback : the string to insert in template in case the replacement is too long max_len : the maximum allowed length of the full string Returns ------- formatted : list of strings Examples -------- >>> ad_create('Let\'s count {}', ['one', 'two', 'three'], 'one', 20) ["Let's count one", "Let's count two", "Let's count three"] >>> ad_create('My favorite car is {}', ['Toyota', 'BMW', 'Mercedes', 'Lamborghini'], 'great', 28) ['My favorite car is Toyota', 'My favorite car is BMW', 'My favorite car is Mercedes', 'My favorite car is great'] """ if len(template.format(fallback)) > max_len: raise ValueError('template + fallback should be <= ' + str(max_len) + ' chars') final_ad = [] for rep in replacements: if len(template.format(rep)) <= max_len: final_ad.append(template.format(rep)) else: final_ad.append(template.format(fallback)) return final_ad