¿Por qué este método de Python da un error que dice que el nombre global no está definido?

Tengo un archivo de código único para mi proyecto de Google App Engine. Este simple archivo tiene una clase, y dentro de él algunos métodos. ¿Por qué este método de Python da un error que dice que el nombre global no está definido?
Erro NameError: el nombre global 'gen_groups' no está definido

import wsgiref.handlers


from google.appengine.ext import webapp
from django.utils import simplejson

class MainHandler(webapp.RequestHandler):

  def gen_groups(self, lines):
    """ Returns contiguous groups of lines in a file """

    group = []

    for line in lines:
      line = line.strip()
      if not line and group:
        yield group
        group = []
      elif line:
          group.append(line)

  def gen_albums(self, groups):
   """ Given groups of lines in an album file, returns albums  """

   for group in groups:
      title    = group.pop(0)
      songinfo = zip(*[iter(group)]*2)
      songs    = [dict(title=title,url=url) for title,url in songinfo]
      album    = dict(title=title, songs=songs)

      yield album





  def get(self):
    input = open('links.txt')
    groups = gen_groups(input)
    albums = gen_albums(groups)

    print simplejson.dumps(list(albums))



def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)


if __name__ == '__main__':
  main()

Respuestas a la pregunta(3)

Su respuesta a la pregunta