Como limpar comentários do arquivo sql bruto

Tenho problemas com a limpeza de comentários e linhas vazias do arquivo sql já existente. O arquivo tem mais de 10 mil linhas, portanto, limpá-lo manualmente não é uma opçã

Tenho um pequeno script python, mas não faço ideia de como lidar com comentários em inserções de várias linha

Código
f = file( 'file.sql', 'r' )
t = filter( lambda x: not x.startswith('--') \
            and not x.isspace() 
  , f.readlines() )
f.close()
t #<- here the cleaned data should be
Como deve funcionar:

Isto deve ser limpo:

-- normal sql comment

Isto deve permanecer como está:

CREATE FUNCTION func1(a integer) RETURNS void
    LANGUAGE plpgsql
    AS $
BEGIN
        -- comment
       [...]
END;
$;

INSERT INTO public.texts (multilinetext) VALUES ('
and more lines here \'
-- part of text 
\'
[...]

');

questionAnswers(5)

yourAnswerToTheQuestion