# Compute Population Stability Index (PSI) with Epsilon Smoothing
The Population Stability Index (PSI) is the industry standard metric for detecting covariate shift on numerical features:
$$\text{PSI} = \sum_{i=1}^{k} (A_i - E_i) \times \ln\left(\frac{A_i}{E_i}\right)$$
### Task
Implement `calculate_psi(baseline: np.ndarray, current: np.ndarray, num_bins: int = 10, epsilon: float = 1e-4) -> float`:
1. Calculate `num_bins` quantile bin edges from the `baseline` array using `np.percentile`.
2. Compute bucket proportions for both `baseline` ($E_i$) and `current` ($A_i$).
3. Add `epsilon` smoothing to each proportion and re-normalize so proportions sum to 1.0.
4. Calculate and return the symmetric PSI as a float rounded to 4 decimal places.