Точно так же, как вы пишете любой другой фильтр.Вот пример, с которого следует начать:
from jinja2 import Environment, Undefined
def custom_sort(iterable, somearg):
if iterable is None or isinstance(iterable, Undefined):
return iterable
# Do custom sorting of iterable here
return iterable
# ...
env = Environment()
env.filters['customsort'] = custom_sort
Не беспокойтесь об эффективности, пока она не станет проблемой.Шаблонный движок в любом случае вряд ли станет узким местом.