paste_factory.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
  2. # Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
  3. def asbool(obj):
  4. if isinstance(obj, (str, unicode)):
  5. obj = obj.strip().lower()
  6. if obj in ['true', 'yes', 'on', 'y', 't', '1']:
  7. return True
  8. elif obj in ['false', 'no', 'off', 'n', 'f', '0']:
  9. return False
  10. else:
  11. raise ValueError(
  12. "String is not true/false: %r" % obj)
  13. return bool(obj)
  14. def aslist(obj, sep=None, strip=True):
  15. if isinstance(obj, (str, unicode)):
  16. lst = obj.split(sep)
  17. if strip:
  18. lst = [v.strip() for v in lst]
  19. return lst
  20. elif isinstance(obj, (list, tuple)):
  21. return obj
  22. elif obj is None:
  23. return []
  24. else:
  25. return [obj]
  26. def run_ajp_thread(wsgi_app, global_conf,
  27. scriptName='', host='localhost', port='8009',
  28. allowedServers='127.0.0.1'):
  29. import flup.server.ajp
  30. addr = (host, int(port))
  31. s = flup.server.ajp.WSGIServer(
  32. wsgi_app,
  33. scriptName=scriptName,
  34. bindAddress=addr,
  35. allowedServers=aslist(allowedServers),
  36. )
  37. s.run()
  38. def run_ajp_fork(wsgi_app, global_conf,
  39. scriptName='', host='localhost', port='8009',
  40. allowedServers='127.0.0.1'):
  41. import flup.server.ajp_fork
  42. addr = (host, int(port))
  43. s = flup.server.ajp_fork.WSGIServer(
  44. wsgi_app,
  45. scriptName=scriptName,
  46. bindAddress=addr,
  47. allowedServers=aslist(allowedServers),
  48. )
  49. s.run()
  50. def run_fcgi_thread(wsgi_app, global_conf,
  51. host=None, port=None,
  52. socket=None, umask=None,
  53. multiplexed=False):
  54. import flup.server.fcgi
  55. if socket:
  56. assert host is None and port is None
  57. sock = socket
  58. elif host:
  59. assert host is not None and port is not None
  60. sock = (host, int(port))
  61. else:
  62. sock = None
  63. if umask is not None:
  64. umask = int(umask)
  65. s = flup.server.fcgi.WSGIServer(
  66. wsgi_app,
  67. bindAddress=sock, umask=umask,
  68. multiplexed=asbool(multiplexed))
  69. s.run()
  70. def run_fcgi_fork(wsgi_app, global_conf,
  71. host=None, port=None,
  72. socket=None, umask=None,
  73. multiplexed=False):
  74. import flup.server.fcgi_fork
  75. if socket:
  76. assert host is None and port is None
  77. sock = socket
  78. elif host:
  79. assert host is not None and port is not None
  80. sock = (host, int(port))
  81. else:
  82. sock = None
  83. if umask is not None:
  84. umask = int(umask)
  85. s = flup.server.fcgi_fork.WSGIServer(
  86. wsgi_app,
  87. bindAddress=sock, umask=umask,
  88. multiplexed=asbool(multiplexed))
  89. s.run()
  90. def run_scgi_thread(wsgi_app, global_conf,
  91. scriptName='', host='localhost', port='4000',
  92. allowedServers='127.0.0.1'):
  93. import flup.server.scgi
  94. addr = (host, int(port))
  95. s = flup.server.scgi.WSGIServer(
  96. wsgi_app,
  97. scriptName=scriptName,
  98. bindAddress=addr,
  99. allowedServers=aslist(allowedServers),
  100. )
  101. s.run()
  102. def run_scgi_fork(wsgi_app, global_conf,
  103. scriptName='', host='localhost', port='4000',
  104. allowedServers='127.0.0.1'):
  105. import flup.server.scgi_fork
  106. addr = (host, int(port))
  107. s = flup.server.scgi_fork.WSGIServer(
  108. wsgi_app,
  109. scriptName=scriptName,
  110. bindAddress=addr,
  111. allowedServers=aslist(allowedServers),
  112. )
  113. s.run()