В предыдущем ответе есть одна проблема (я знаю, потому что я только что попробовал себя), в следующей строке:
methods = [m for m in methods if m[0] in ('COD',)] # won't have the desired effect
Проблема в том, что из исходного списка методов создается совершенно новый список, который хранится под тем же именем переменной. Это не повлияет на первоначальный список, который передал Satchmo, поэтому Satchmo даже не узнает.
То, что вам нужно сделать, это на самом деле изменить переданный объект списка, используя такие методы, как 'method.remove (...)'.
В конкретном примере это должно быть примерно так:
disallowed_methods = [m for m in methods if m[0] not in ('COD',)]
for m in disallowed_methods:
methods.remove(m)
Может быть, мой код не самый элегантный; возможно, кто-то может улучшить его, и, возможно, интегрировать его с первоначальным ответом