def exponential_moving_average(data, period):
catch_errors.check_for_period_error(data, period)<EOL>emas = [exponential_moving_average_helper(<EOL>data[idx - period + <NUM_LIT:1>:idx + <NUM_LIT:1>], period) for idx in range(period - <NUM_LIT:1>, len(data))]<EOL>emas = fill_for_noncomputable_vals(data, emas)<EOL>return emas<EOL>
Exponential Moving Average.

Formula:
p0 + (1 - w) * p1 + (1 - w)^2 * p2 + (1 + w)^3 * p3 +...
            /   1 + (1 - w) + (1 - w)^2 + (1 - w)^3 +...

where: w = 2 / (N + 1)