Strumieniowanie plików WSGI za pomocą generatora

Mam następujący kod:

def application(env, start_response):
    path = process(env)
    fh = open(path,'r')
    start_response('200 OK', [('Content-Type','application/octet-stream')])
    return fbuffer(fh,10000)


def fbuffer(f, chunk_size):
    '''Generator to buffer file chunks'''  
    while True:
        chunk = f.read(chunk_size)      
        if not chunk: break
        yield chunk

Nie jestem pewien, czy to prawda, ale skrawki informacji, które znalazłem w Internecie, doprowadziły mnie do wniosku, że powinno to zadziałać. Zasadniczo chcę przesyłać strumieniowo plik w kawałkach i w tym celu przekazuję generator z funkcji aplikacji. Jednak drukuje tylko nagłówki i nie wysyła żadnych danych, czy ktoś może mi powiedzieć, dlaczego tak jest?

Alternatywnie, jeśli jest to całkowicie błędne, jaki jest najlepszy sposób, aby to zrobić? Nie mogę buforować całego pliku w pamięci, ponieważ pliki, z którymi będę pracować, są potencjalnie duże w gigabajtach.

Pytanie trzeciorzędne: Jaki jest najlepszy sposób na zamknięcie pliku po zakończeniu generowania go? W napisanym przeze mnie kodzie nie widzę, aby rzeczywiście zamknąć plik.

(Używam pythona 3.2.3 z uWSGI 1.2.4)

questionAnswers(1)

yourAnswerToTheQuestion