From b7dfa8bf234baa31811ad8e0a1848b18fc405960 Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Wed, 31 Aug 2011 16:41:27 -0300 Subject: [PATCH 01/17] Added Admin Media Handler to the WSGIHandler --- django_cpserver/management/commands/runcpserver.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/django_cpserver/management/commands/runcpserver.py b/django_cpserver/management/commands/runcpserver.py index 3611273..0c182e4 100644 --- a/django_cpserver/management/commands/runcpserver.py +++ b/django_cpserver/management/commands/runcpserver.py @@ -153,9 +153,11 @@ def start_server(options): from cherrypy.wsgiserver import CherryPyWSGIServer as Server from django.core.handlers.wsgi import WSGIHandler + from django.core.servers.basehttp import AdminMediaHandler + app = AdminMediaHandler(WSGIHandler()) server = Server( (options['host'], int(options['port'])), - WSGIHandler(), + app, int(options['threads']), options['server_name'] ) From d7c42f298d44b3206943efda4e981ef879f013d0 Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Wed, 31 Aug 2011 17:05:27 -0300 Subject: [PATCH 02/17] let people know I made some mods --- README.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 96c2b0c..446415e 100644 --- a/README.rst +++ b/README.rst @@ -20,4 +20,10 @@ Acknowledgements Idea and code snippets borrowed from `Loic d'Anterroches`__, adapted to run as a management command -__ http://www.xhtml.net/scripts/Django-CherryPy-server-DjangoCerise \ No newline at end of file +__ http://www.xhtml.net/scripts/Django-CherryPy-server-DjangoCerise + +Modifications +============= + +This version is mantained by Manuel Naranjo < manuel at aircable dot net > mail +him for modifications questions. From fe05eb174057e9fa3532a2b2977543e05e89e6a0 Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Wed, 31 Aug 2011 17:05:54 -0300 Subject: [PATCH 03/17] build egg file, modified url, bumped version number, added readme.rst as long_description --- setup.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 9acc787..6f3f655 100644 --- a/setup.py +++ b/setup.py @@ -1,15 +1,22 @@ -from distutils.core import setup - +#from distutils.core import setup +from setuptools import setup +import os, os.path + +def read(fname): + return open(os.path.join(os.path.dirname(__file__), fname)).read() + setup( name="django_cpserver", - version="0.1", + version="0.2", description="Management commands for serving Django via CherryPy's built-in WSGI server", author="Peter Baumgartner", author_email="pete@lincolnloop.com", - url="http://lincolnloop.com/blog/2008/mar/25/serving-django-cherrypy/", + url="https://github.com/manuelnaranjo/django-cpserver", packages=[ "django_cpserver", "django_cpserver.management", "django_cpserver.management.commands", ], + license="BSD", + long_description=read("README.rst") ) \ No newline at end of file From ea8acc1e9fbbc9b1a47d797b331907d032bf033d Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Wed, 31 Aug 2011 17:08:48 -0300 Subject: [PATCH 04/17] added list of topics --- setup.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 6f3f655..3c92c58 100644 --- a/setup.py +++ b/setup.py @@ -18,5 +18,13 @@ def read(fname): "django_cpserver.management.commands", ], license="BSD", - long_description=read("README.rst") + long_description=read("README.rst"), + classifiers=[ + "Development Status :: 5 - Production/Stable", + "Framework :: CherryPy", + "Framework :: Django", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python", + ] ) \ No newline at end of file From 8d35235c891aa32db18bb734f97b1a213f4485e2 Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Wed, 31 Aug 2011 17:14:21 -0300 Subject: [PATCH 05/17] bumped version number --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 3c92c58..53eeda3 100644 --- a/setup.py +++ b/setup.py @@ -6,8 +6,8 @@ def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() setup( - name="django_cpserver", - version="0.2", + name="django-cpserver", + version="1.2", description="Management commands for serving Django via CherryPy's built-in WSGI server", author="Peter Baumgartner", author_email="pete@lincolnloop.com", From f73e65e04d7a2efa65573eaef1c6ed49147d418c Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Tue, 18 Oct 2011 09:12:43 -0700 Subject: [PATCH 06/17] Added setup.py for easy_install registration --- setup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 53eeda3..9e6c5cd 100644 --- a/setup.py +++ b/setup.py @@ -6,12 +6,12 @@ def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() setup( - name="django-cpserver", + name="django-cpserver-op", version="1.2", - description="Management commands for serving Django via CherryPy's built-in WSGI server", + description="Management commands for serving Django via CherryPy's built-in WSGI server modified for OpenProximity", author="Peter Baumgartner", author_email="pete@lincolnloop.com", - url="https://github.com/manuelnaranjo/django-cpserver", + url="https://github.com/OpenProximity/django-cpserver", packages=[ "django_cpserver", "django_cpserver.management", @@ -27,4 +27,4 @@ def read(fname): "License :: OSI Approved :: BSD License", "Programming Language :: Python", ] -) \ No newline at end of file +) From 9ff291c837f7441d3cc5d33694cbe3454935039e Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Tue, 18 Oct 2011 09:13:57 -0700 Subject: [PATCH 07/17] Removed gitignore from the repository --- .gitignore | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 33be536..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.pyc -*~ -.DS_Store -local_settings.py From ef23cc49506fe4a828f09930656df328d7a38874 Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Sat, 22 Oct 2011 20:30:27 -0700 Subject: [PATCH 08/17] added missing dependency --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 9e6c5cd..d17a073 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def read(fname): setup( name="django-cpserver-op", - version="1.2", + version="1.2.1", description="Management commands for serving Django via CherryPy's built-in WSGI server modified for OpenProximity", author="Peter Baumgartner", author_email="pete@lincolnloop.com", @@ -19,6 +19,7 @@ def read(fname): ], license="BSD", long_description=read("README.rst"), + install_requires=['CherryPy'], classifiers=[ "Development Status :: 5 - Production/Stable", "Framework :: CherryPy", From dadf578fae04127b7dc28e13fcafe14dd69f5ae3 Mon Sep 17 00:00:00 2001 From: Manuel Francisco Naranjo Date: Sun, 23 Oct 2011 17:00:29 -0700 Subject: [PATCH 09/17] Fixed timeout problems, handling keyboard interrupts better --- django_cpserver/management/commands/runcpserver.py | 4 +++- setup.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/django_cpserver/management/commands/runcpserver.py b/django_cpserver/management/commands/runcpserver.py index 0c182e4..e99285a 100644 --- a/django_cpserver/management/commands/runcpserver.py +++ b/django_cpserver/management/commands/runcpserver.py @@ -159,7 +159,9 @@ def start_server(options): (options['host'], int(options['port'])), app, int(options['threads']), - options['server_name'] + options['server_name'], + timeout=2, + shutdown_timeout=2 ) if options['ssl_certificate'] and options['ssl_private_key']: server.ssl_certificate = options['ssl_certificate'] diff --git a/setup.py b/setup.py index d17a073..677239f 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def read(fname): setup( name="django-cpserver-op", - version="1.2.1", + version="1.2.2", description="Management commands for serving Django via CherryPy's built-in WSGI server modified for OpenProximity", author="Peter Baumgartner", author_email="pete@lincolnloop.com", From d1d06e7444435605a994328b14426d9a92688ed4 Mon Sep 17 00:00:00 2001 From: mhurron Date: Mon, 2 Sep 2013 13:50:07 -0400 Subject: [PATCH 10/17] Made exception Python 3 friendly --- django_cpserver/management/commands/runcpserver.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/django_cpserver/management/commands/runcpserver.py b/django_cpserver/management/commands/runcpserver.py index 3611273..2b4e9f4 100644 --- a/django_cpserver/management/commands/runcpserver.py +++ b/django_cpserver/management/commands/runcpserver.py @@ -115,7 +115,8 @@ def poll_process(pid): try: # poll the process state os.kill(pid, 0) - except OSError, e: + except OSError: + e = sys.exc_info()[1] if e[0] == errno.ESRCH: # process has died return False From d6eff42fbff6477efb095ed890502ffa46dc49cf Mon Sep 17 00:00:00 2001 From: mhurron Date: Mon, 2 Sep 2013 13:51:14 -0400 Subject: [PATCH 11/17] Made print Python 3 friendly --- django_cpserver/management/commands/runcpserver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_cpserver/management/commands/runcpserver.py b/django_cpserver/management/commands/runcpserver.py index 2b4e9f4..71e97aa 100644 --- a/django_cpserver/management/commands/runcpserver.py +++ b/django_cpserver/management/commands/runcpserver.py @@ -181,7 +181,7 @@ def runcpserver(argset=[], **kwargs): options[k.lower()] = v if "help" in options: - print CPSERVER_HELP + print(CPSERVER_HELP) return if "stop" in options: @@ -204,7 +204,7 @@ def runcpserver(argset=[], **kwargs): fp.close() # Start the webserver - print 'starting server with options %s' % options + print('starting server with options %s' % options) start_server(options) From 0e51185f8875ed6a8bb2db5ded2cfcff55a128b6 Mon Sep 17 00:00:00 2001 From: mhurron Date: Mon, 2 Sep 2013 13:57:21 -0400 Subject: [PATCH 12/17] Make raise call Python 3 friendly --- django_cpserver/management/commands/runcpserver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_cpserver/management/commands/runcpserver.py b/django_cpserver/management/commands/runcpserver.py index 71e97aa..a466799 100644 --- a/django_cpserver/management/commands/runcpserver.py +++ b/django_cpserver/management/commands/runcpserver.py @@ -140,7 +140,7 @@ def stop_server(pidfile): #process didn't exit cleanly, make one last effort to kill it os.kill(pid, signal.SIGKILL) if poll_process(pid): - raise OSError, "Process %s did not stop." + raise OSError("Process %s did not stop.") os.remove(pidfile) def start_server(options): From 28af816b95f5ee64928daffcf440dec12a6aad65 Mon Sep 17 00:00:00 2001 From: Mhurron Date: Mon, 2 Sep 2013 18:12:45 -0400 Subject: [PATCH 13/17] Update Readme.rst This version is not maintained by Manuel Naranjo so I don't suggest mailing him for modifications questions. --- README.rst | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.rst b/README.rst index 446415e..1d5522f 100644 --- a/README.rst +++ b/README.rst @@ -21,9 +21,3 @@ Acknowledgements Idea and code snippets borrowed from `Loic d'Anterroches`__, adapted to run as a management command __ http://www.xhtml.net/scripts/Django-CherryPy-server-DjangoCerise - -Modifications -============= - -This version is mantained by Manuel Naranjo < manuel at aircable dot net > mail -him for modifications questions. From c64ed6008638cb0f3423b5708b50e38fc9f1912a Mon Sep 17 00:00:00 2001 From: Mhurron Date: Sat, 7 Sep 2013 12:27:30 -0400 Subject: [PATCH 14/17] Bump Version Number Bump version number to way over 1.2 but not quite 2.0. Reflects changes to make Python 3 friendly but I'm not quite ready to call this a magical 2.0 release number. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 677239f..cc69d0e 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def read(fname): setup( name="django-cpserver-op", - version="1.2.2", + version="1.90.0", description="Management commands for serving Django via CherryPy's built-in WSGI server modified for OpenProximity", author="Peter Baumgartner", author_email="pete@lincolnloop.com", From f6d1bd180d7432df478fe2a4248d656251046978 Mon Sep 17 00:00:00 2001 From: Mhurron Date: Sun, 8 Sep 2013 09:31:50 -0400 Subject: [PATCH 15/17] Remove call to AdminMediaHandler AdminMediaHandler was removed in Django 1.5 --- django_cpserver/management/commands/runcpserver.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/django_cpserver/management/commands/runcpserver.py b/django_cpserver/management/commands/runcpserver.py index 7fed863..7d4fbae 100644 --- a/django_cpserver/management/commands/runcpserver.py +++ b/django_cpserver/management/commands/runcpserver.py @@ -154,8 +154,7 @@ def start_server(options): from cherrypy.wsgiserver import CherryPyWSGIServer as Server from django.core.handlers.wsgi import WSGIHandler - from django.core.servers.basehttp import AdminMediaHandler - app = AdminMediaHandler(WSGIHandler()) + app = WSGIHandler() server = Server( (options['host'], int(options['port'])), app, From c092ba69053e6770b38eb88148bb01e3d18a57e9 Mon Sep 17 00:00:00 2001 From: Mhurron Date: Sun, 8 Sep 2013 10:26:44 -0400 Subject: [PATCH 16/17] Add mod_proxy bit to README.rst --- README.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.rst b/README.rst index 1d5522f..41c6370 100644 --- a/README.rst +++ b/README.rst @@ -15,6 +15,16 @@ Usage Run ``./manage.py runcpserver help`` from within your project directory +Apache and mod_proxy +==================== +By default runcpserver binds to localhost on port 8088. Another webserver can be used to expose your local CherryPy +instance by proxying requests to the local process. Remember, runcpserver won't serve your static files. + + + ProxyPass http://localhost:8088 + ProxyPassRevese http://localhost:8088 + + Acknowledgements ================ From ae5eb2ad6a7280e0c45db1ac540f6d17aed52bbb Mon Sep 17 00:00:00 2001 From: Mhurron Date: Sun, 8 Sep 2013 12:56:59 -0400 Subject: [PATCH 17/17] README.rst formatting --- README.rst | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index 41c6370..6be3e7c 100644 --- a/README.rst +++ b/README.rst @@ -16,14 +16,17 @@ Usage Run ``./manage.py runcpserver help`` from within your project directory Apache and mod_proxy -==================== +-------------------- By default runcpserver binds to localhost on port 8088. Another webserver can be used to expose your local CherryPy instance by proxying requests to the local process. Remember, runcpserver won't serve your static files. - - ProxyPass http://localhost:8088 - ProxyPassRevese http://localhost:8088 - + + ProxyPass /static/ ! + + ProxyPass http://localhost:8088 + ProxyPassRevese http://localhost:8088 + + Acknowledgements ================