This seems to work:
with pm.Model(check_bounds=False) as model:
probs = pm.Dirichlet('probs', np.ones(7))
mu = probs[np.newaxis, :] * weekly[:, np.newaxis]
pm.Normal('likelihood', mu=mu, sigma=1, observed=data)
I get this as the summary of my trace:
mean sd hdi_3% hdi_97% mcse_mean mcse_sd ess_bulk ess_tail r_hat
probs[0] 0.10 0.003 0.095 0.106 0.0 0.0 3262.0 2966.0 1.0
probs[1] 0.10 0.003 0.095 0.105 0.0 0.0 3314.0 2847.0 1.0
probs[2] 0.20 0.003 0.194 0.205 0.0 0.0 4419.0 2688.0 1.0
probs[3] 0.10 0.003 0.094 0.105 0.0 0.0 3217.0 2735.0 1.0
probs[4] 0.05 0.003 0.044 0.055 0.0 0.0 2237.0 2362.0 1.0
probs[5] 0.05 0.003 0.045 0.055 0.0 0.0 2829.0 2758.0 1.0
probs[6] 0.40 0.003 0.394 0.406 0.0 0.0 3851.0 3777.0 1.0