The suppression list is a separate file uploaded to Silvepop. It is currently in the same script but it's dependencies are limited. to:
- If requires the tables generated by the Silverpop job - but if they exist it can run at any time
- If we upload the full table & then the suppression job fails then we might email someone who should be shouldn't have received it.
I think we can mitigate these by scheduling it to happen a few hours later - although @KHaggard probably needs to confirm that.
The calculation of the suppression list currently takes over an hour so doing it after would reduce the main job time (although I believe I can also reduce suppression list calculation time).
I'm going to work on separating the sql to a separate file & reviewing. UPDATE - see these 2 commits https://gerrit.wikimedia.org/r/#/c/wikimedia/fundraising/tools/+/607156/
Setting up a separate python job for it might be something someone else wants to do (mepps & cstone both indicated they were looking for a part to take on, and I'll work on the myqsl separation today - which interacts with the other parts I'm focussed on right now)