docs: def select_product():
      """
      binds the frozen context the selected features
  
      should be called only once - calls after the first call have
      no effect
      """
      global _product_selected
      if _product_selected:
          # tss already bound ... ignore
          return
  
      _product_selected = True
      from django_productline import context, template
  
      featuremonkey.add_import_guard('django.conf')
      featuremonkey.add_import_guard('django.db')
      os.environ['DJANGO_SETTINGS_MODULE'] = 'django_productline.settings'
      contextfile = os.environ['PRODUCT_CONTEXT_FILENAME']
      equationfile = os.environ['PRODUCT_EQUATION_FILENAME']
  
  
      #bind context and compose features
      context.bind_context(contextfile)
      get_composer().select_equation(equationfile)
  
      # after composition we are now able to bind composed template settings
      template.bind_settings()
  
      featuremonkey.remove_import_guard('django.conf')
      featuremonkey.remove_import_guard('django.db')
  
      import django
      if compare_version(django.get_version(), '1.7') >= 0:
          django.setup()
      # force import of settings and urls
      # better fail during initialization than on the first request
      from django.conf import settings
      from django.core.urlresolvers import get_resolver
      # eager creation of URLResolver
      get_resolver(None)
  
      # make sure overextends tag is registered
      from django.template.loader import get_template
      from overextends import models