old_contents: import sys, os
  import json
  
  sys.path.insert(0, '.')
  sys.path.insert(0, 'app')
  sys.path.insert(0, 'lib')
  
  from werkzeug.wrappers import Request, Response
  from werkzeug.local import LocalManager
  from webnotes.middlewares import StaticDataMiddleware
  from werkzeug.exceptions import HTTPException
  from webnotes import get_config
  
  import mimetypes
  import webnotes
  import webnotes.handler
  import webnotes.auth
  import webnotes.webutils
  
  local_manager = LocalManager([webnotes.local])
  
  @Request.application
  def application(request):
  	webnotes.local.request = request
  	
  	try:
  		site = webnotes.utils.get_site_name(request.host)
  		webnotes.init(site=site)
  		
  		webnotes.local.form_dict = webnotes._dict({ k:v[0] if isinstance(v, (list, tuple)) else v \
  			for k, v in (request.form or request.args).iteritems() })
  				
  		webnotes.local._response = Response()
  
  		try:
  			webnotes.http_request = webnotes.auth.HTTPRequest()
  		except webnotes.AuthenticationError, e:
  			pass
  		
  		if webnotes.form_dict.cmd:
  			webnotes.handler.handle()
  		else:
  			webnotes.webutils.render(webnotes.request.path[1:])
  
  		if webnotes.conn:
  			webnotes.conn.close()
  
  	except HTTPException, e:
  		return e
  		
  	return webnotes._response
  
  application = local_manager.make_middleware(application)
  
  
  application = StaticDataMiddleware(application, {
  	'/': 'public',
  })
  
  def serve(port=8000):
  	from werkzeug.serving import run_simple
  	run_simple('0.0.0.0', int(port), application, use_reloader=True, 
  		use_debugger=True, use_evalex=True)
  
  if __name__ == '__main__':
  	import sys
  	
  	port = None
  	if len(sys.argv) > 1:
  		port = sys.argv[1]
  	
  	serve(port)
  
  
  
new_contents: import sys, os
  import json
  
  sys.path.insert(0, '.')
  sys.path.insert(0, 'app')
  sys.path.insert(0, 'lib')
  
  from werkzeug.wrappers import Request, Response
  from werkzeug.local import LocalManager
  from webnotes.middlewares import StaticDataMiddleware
  from werkzeug.exceptions import HTTPException
  from webnotes import get_config
  
  import mimetypes
  import webnotes
  import webnotes.handler
  import webnotes.auth
  import webnotes.webutils
  
  local_manager = LocalManager([webnotes.local])
  
  @Request.application
  def application(request):
  	webnotes.local.request = request
  	
  	try:
  		site = webnotes.utils.get_site_name(request.host)
  		webnotes.init(site=site)
  		
  		webnotes.local.form_dict = webnotes._dict({ k:v[0] if isinstance(v, (list, tuple)) else v \
  			for k, v in (request.form or request.args).iteritems() })
  				
  		webnotes.local._response = Response()
  
  		try:
  			webnotes.http_request = webnotes.auth.HTTPRequest()
  		except webnotes.AuthenticationError, e:
  			pass
  		
  		if webnotes.form_dict.cmd:
  			webnotes.handler.handle()
  		else:
  			webnotes.webutils.render(webnotes.request.path[1:])
  
  		if webnotes.conn:
  			webnotes.conn.close()
  
  	except HTTPException, e:
  		return e
  		
  	return webnotes._response
  
  application = local_manager.make_middleware(application)
  
  
  application = StaticDataMiddleware(application, {
  	'/': 'public',
  })
  
  def serve(port=8000):
  	from werkzeug.serving import run_simple
  	run_simple('0.0.0.0', int(port), application, use_reloader=True, 
  		use_debugger=True, use_evalex=True)
  
subject: remove __main__ from app.py