.. image:: https://img.shields.io/pypi/v/zope.server.svg
:target: https://pypi.python.org/pypi/zope.server/
:alt: Latest release
.. image:: https://img.shields.io/pypi/pyversions/zope.server.svg
:target: https://pypi.org/project/zope.server/
:alt: Supported Python versions
.. image:: https://github.com/zopefoundation/zope.server/actions/workflows/tests.yml/badge.svg
:target: https://github.com/zopefoundation/zope.server/actions/workflows/tests.yml
.. image:: https://coveralls.io/repos/github/zopefoundation/zope.server/badge.svg?branch=master
:target: https://coveralls.io/github/zopefoundation/zope.server?branch=master
This package contains generic base classes for channel-based servers, the
servers themselves and helper objects, such as tasks and requests.
============
WSGI Support
============
`zope.server`'s HTTP server comes with WSGI_ support.
``zope.server.http.wsgihttpserver.WSGIHTTPServer`` can act as a WSGI gateway.
There's also an entry point for PasteDeploy_ that lets you use zope.server's
WSGI gateway from a configuration file, e.g.::
[server:main]
use = egg:zope.server
host = 127.0.0.1
port = 8080
.. _WSGI: http://www.python.org/dev/peps/pep-0333/
.. _PasteDeploy: https://docs.pylonsproject.org/projects/pastedeploy/
=========
CHANGES
=========
5.0 (2024-09-05)
================
- Add support for Python 3.10, 3.11.
- Drop support for Python 2.7, 3.5, 3.6.
- Add Python 3.8 and 3.9 support.
- Drop Python 3.4 support.
- Add `python_requires` to `setup.py`.
- Update PasteDeploy link in README.
- Avoid traceback reference cycle in ``_triggerbase.handle_read``.
- Close output buffer when closing a ``DualModeChannel`` to fix a
``ResourceWarning``. See `issue 25
<https://github.com/zopefoundation/zope.server/issues/25>`_.
4.0.2 (2019-07-11)
==================
- Fix pipetrigger.close() to close the right file descriptor.
(This could've been causing EBADF errors in unrelated places!)
- Add Python 3.7 support.
4.0.1 (2017-10-31)
==================
- Fix Windows compatibility regression introduced in 4.0.0.
See `issue 9 <https://github.com/zopefoundation/zope.server/issues/9>`_.
4.0.0 (2017-10-30)
==================
- Drop Python 2.6 support.
- Add Python 3.4, 3.5, and 3.6 support.
- Add PyPy support.
- Made the HTTPTask not have ``command`` or ``uri`` values of
``"None"`` when the first request line cannot be parsed. Now they
are empty strings.
- Reimplement ``buffers.OverflowableBuffer`` in terms of the standard
library's ``tempfile.SpooledTemporaryFile``. This is much simpler.
See `issue 5 <https://github.com/zopefoundation/zope.server/issues/5>`_.
- Achieve and maintain 100% test coverage.
- Remove all the custom logging implementations in
``zope.server.logging`` and change the ``CommonAccessLogger`` and
``CommonFTPActivityLogger`` to only work with Python standard
library loggers. The standard library supports all the logging
functions this package previously provided. It can be easily configured
with ZConfig. See `issue 4
<https://github.com/zopefoundation/zope.server/issues/4>`_.
3.9.0 (2013-03-13)
==================
- Better adherence to WSGI:
* Call close method if present on iterables returned by
``start_response``.
* Don't include non-string values in the CGI environment
(``CHANNEL_CREATION_TIME``).
* Always include ``QUERY_STRING`` to avoid the cgi module falling back
to ``sys.argv``.
* Add tests based on `paste.lint` middleware.
- Replaced deprecated ``zope.interface.implements`` usage with equivalent
``zope.interface.implementer`` decorator.
- Dropped support for Python 2.4 and 2.5.
- Exceptions that happen in the handler thread main loop are logged so that
the unexpected death of a handler thread does not happen in silence.
3.8.6 (2012-01-07)
==================
- On startup, HTTPServer prints a clickable URL after the hostname/port.
3.8.5 (2011-09-13)
==================
- fixed bug: requests lasting over 15 minutes were sometimes closed
prematurely.
3.8.4 (2011-06-07)
==================
- Fix syntax error in tests on Python < 2.6.
3.8.3 (2011-05-18)
==================
- Made ``start_response`` method of WSGI server implementation more compliant
with spec:
http://www.python.org/dev/peps/pep-0333/#the-start-response-callable
3.8.2 (2010-12-04)
==================
- Corrected license version in ``zope/server/http/tests/test_wsgiserver.py``.
3.8.1 (2010-08-24)
==================
- When the result of a WSGI application was received, ``task.write()`` was
only called once to transmit the data. This prohibited the transmission of
partial results. Now the WSGI server iterates through the result itself
making multiple ``task.write()`` calls, which will cause partial data to be
transmitted.
- Created a second test case instance for the post-mortem WSGI server, so it
is tested as well.
- Using python's ``doctest`` module instead of deprecated
``zope.testing.doctest``.
3.8.0 (2010-08-05)
==================
- Implemented correct server proxy behavior. The HTTP server would always add
a "Server" and "Date" response header to the list of response headers
regardless whether one had been set already. The HTTP 1.1 spec specifies
that a proxy server must not modify the "Server" and "Date" header but add a
"Via" header instead.
3.7.0 (2010-08-01)
==================
- Implemented proxy support. Proxy requests contain a full URIs and the
request parser used to throw that information away. Using
``urlparse.urlsplit()``, all pieces of the URL are recorded.
- The proxy scheme and netloc/hostname are exposed in the WSGI environment as
``zserver.proxy.scheme`` and ``zserver.proxy.host``.
- Made tests runnable via buildout again.
3.6.2 (2010-06-11)
==================
- The log message "Exception during task" is no longer logged to the root
logger but to zope.server.taskthreads.
3.6.1 (2009-10-07)
==================
- Made tests pass with current zope.publisher which restricts redirects to the
current host by default.
3.6.0 (2009-05-27)
==================
- Moved some imports from test modules to their setUp to prevent
failures when ZEO tests are run by the same testrunner
- Removed unused dependency on zope.deprecation.
- Remove old zpkg-related DEPENDENCIES.cfg file.
3.5.0 (2008-03-01)
==================
- Improve package meta-data.
- Fix of 599 error on conflict error in request
see: http://mail.zope.org/pipermail/zope-dev/2008-January/030844.html
- Removed dependency on ZODB.
3.5.0a2 (2007-06-02)
====================
- Made WSGI server really WSGI-compliant by adding variables to the
environment that are required by the spec.
3.5.0a1 (2007-06-02)
====================
- Added a factory and entry point for PasteDeploy.
3.4.3 (2008-08-18)
==================
- Moved some imports from test modules to their setUp to prevent
failures when ZEO tests are run by the same testrunner
3.4.2 (2008-02-02)
==================
- Fix of 599 error on conflict error in request
see: http://mail.zope.org/pipermail/zope-dev/2008-January/030844.html
3.4.1 (2007-06-02)
==================
- Made WSGI server really WSGI-compliant by adding variables to the
environment that are required by the spec.
3.4.0 (2007-06-02)
==================
- Removed an unused import. Unchanged otherwise.
3.4.0a1 (2007-04-22)
====================
- Initial release as a separate project, corresponds to zope.server
from Zope 3.4.0a1
- Made WSGI server really WSGI-compliant by adding variables to the
environment that are required by the spec.
Raw data
{
"_id": null,
"home_page": "https://github.com/zopefoundation/zope.server",
"name": "zope.server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "zope3 server http ftp",
"author": "Zope Foundation and Contributors",
"author_email": "zope-dev@zope.dev",
"download_url": "https://files.pythonhosted.org/packages/b0/69/d4e0925c435a267030b2c281f215b2f9fb4f8f191b2d5f025913d396a16e/zope.server-5.0.tar.gz",
"platform": null,
"description": "\n.. image:: https://img.shields.io/pypi/v/zope.server.svg\n :target: https://pypi.python.org/pypi/zope.server/\n :alt: Latest release\n\n.. image:: https://img.shields.io/pypi/pyversions/zope.server.svg\n :target: https://pypi.org/project/zope.server/\n :alt: Supported Python versions\n\n.. image:: https://github.com/zopefoundation/zope.server/actions/workflows/tests.yml/badge.svg\n :target: https://github.com/zopefoundation/zope.server/actions/workflows/tests.yml\n\n.. image:: https://coveralls.io/repos/github/zopefoundation/zope.server/badge.svg?branch=master\n :target: https://coveralls.io/github/zopefoundation/zope.server?branch=master\n\nThis package contains generic base classes for channel-based servers, the\nservers themselves and helper objects, such as tasks and requests.\n\n============\nWSGI Support\n============\n\n`zope.server`'s HTTP server comes with WSGI_ support.\n``zope.server.http.wsgihttpserver.WSGIHTTPServer`` can act as a WSGI gateway.\nThere's also an entry point for PasteDeploy_ that lets you use zope.server's\nWSGI gateway from a configuration file, e.g.::\n\n [server:main]\n use = egg:zope.server\n host = 127.0.0.1\n port = 8080\n\n.. _WSGI: http://www.python.org/dev/peps/pep-0333/\n.. _PasteDeploy: https://docs.pylonsproject.org/projects/pastedeploy/\n\n\n=========\n CHANGES\n=========\n\n5.0 (2024-09-05)\n================\n\n- Add support for Python 3.10, 3.11.\n\n- Drop support for Python 2.7, 3.5, 3.6.\n\n- Add Python 3.8 and 3.9 support.\n\n- Drop Python 3.4 support.\n\n- Add `python_requires` to `setup.py`.\n\n- Update PasteDeploy link in README.\n\n- Avoid traceback reference cycle in ``_triggerbase.handle_read``.\n\n- Close output buffer when closing a ``DualModeChannel`` to fix a\n ``ResourceWarning``. See `issue 25\n <https://github.com/zopefoundation/zope.server/issues/25>`_.\n\n\n4.0.2 (2019-07-11)\n==================\n\n- Fix pipetrigger.close() to close the right file descriptor.\n (This could've been causing EBADF errors in unrelated places!)\n\n- Add Python 3.7 support.\n\n\n4.0.1 (2017-10-31)\n==================\n\n- Fix Windows compatibility regression introduced in 4.0.0.\n See `issue 9 <https://github.com/zopefoundation/zope.server/issues/9>`_.\n\n\n4.0.0 (2017-10-30)\n==================\n\n- Drop Python 2.6 support.\n\n- Add Python 3.4, 3.5, and 3.6 support.\n\n- Add PyPy support.\n\n- Made the HTTPTask not have ``command`` or ``uri`` values of\n ``\"None\"`` when the first request line cannot be parsed. Now they\n are empty strings.\n\n- Reimplement ``buffers.OverflowableBuffer`` in terms of the standard\n library's ``tempfile.SpooledTemporaryFile``. This is much simpler.\n See `issue 5 <https://github.com/zopefoundation/zope.server/issues/5>`_.\n\n- Achieve and maintain 100% test coverage.\n\n- Remove all the custom logging implementations in\n ``zope.server.logging`` and change the ``CommonAccessLogger`` and\n ``CommonFTPActivityLogger`` to only work with Python standard\n library loggers. The standard library supports all the logging\n functions this package previously provided. It can be easily configured\n with ZConfig. See `issue 4\n <https://github.com/zopefoundation/zope.server/issues/4>`_.\n\n3.9.0 (2013-03-13)\n==================\n\n- Better adherence to WSGI:\n\n * Call close method if present on iterables returned by\n ``start_response``.\n\n * Don't include non-string values in the CGI environment\n (``CHANNEL_CREATION_TIME``).\n\n * Always include ``QUERY_STRING`` to avoid the cgi module falling back\n to ``sys.argv``.\n\n * Add tests based on `paste.lint` middleware.\n\n- Replaced deprecated ``zope.interface.implements`` usage with equivalent\n ``zope.interface.implementer`` decorator.\n\n- Dropped support for Python 2.4 and 2.5.\n\n- Exceptions that happen in the handler thread main loop are logged so that\n the unexpected death of a handler thread does not happen in silence.\n\n\n3.8.6 (2012-01-07)\n==================\n\n- On startup, HTTPServer prints a clickable URL after the hostname/port.\n\n\n3.8.5 (2011-09-13)\n==================\n\n- fixed bug: requests lasting over 15 minutes were sometimes closed\n prematurely.\n\n3.8.4 (2011-06-07)\n==================\n\n- Fix syntax error in tests on Python < 2.6.\n\n\n3.8.3 (2011-05-18)\n==================\n\n- Made ``start_response`` method of WSGI server implementation more compliant\n with spec:\n\n http://www.python.org/dev/peps/pep-0333/#the-start-response-callable\n\n3.8.2 (2010-12-04)\n==================\n\n- Corrected license version in ``zope/server/http/tests/test_wsgiserver.py``.\n\n3.8.1 (2010-08-24)\n==================\n\n- When the result of a WSGI application was received, ``task.write()`` was\n only called once to transmit the data. This prohibited the transmission of\n partial results. Now the WSGI server iterates through the result itself\n making multiple ``task.write()`` calls, which will cause partial data to be\n transmitted.\n\n- Created a second test case instance for the post-mortem WSGI server, so it\n is tested as well.\n\n- Using python's ``doctest`` module instead of deprecated\n ``zope.testing.doctest``.\n\n3.8.0 (2010-08-05)\n==================\n\n- Implemented correct server proxy behavior. The HTTP server would always add\n a \"Server\" and \"Date\" response header to the list of response headers\n regardless whether one had been set already. The HTTP 1.1 spec specifies\n that a proxy server must not modify the \"Server\" and \"Date\" header but add a\n \"Via\" header instead.\n\n3.7.0 (2010-08-01)\n==================\n\n- Implemented proxy support. Proxy requests contain a full URIs and the\n request parser used to throw that information away. Using\n ``urlparse.urlsplit()``, all pieces of the URL are recorded.\n\n- The proxy scheme and netloc/hostname are exposed in the WSGI environment as\n ``zserver.proxy.scheme`` and ``zserver.proxy.host``.\n\n- Made tests runnable via buildout again.\n\n3.6.2 (2010-06-11)\n==================\n\n- The log message \"Exception during task\" is no longer logged to the root\n logger but to zope.server.taskthreads.\n\n\n3.6.1 (2009-10-07)\n==================\n\n- Made tests pass with current zope.publisher which restricts redirects to the\n current host by default.\n\n\n3.6.0 (2009-05-27)\n==================\n\n- Moved some imports from test modules to their setUp to prevent\n failures when ZEO tests are run by the same testrunner\n\n- Removed unused dependency on zope.deprecation.\n\n- Remove old zpkg-related DEPENDENCIES.cfg file.\n\n\n3.5.0 (2008-03-01)\n==================\n\n- Improve package meta-data.\n\n- Fix of 599 error on conflict error in request\n see: http://mail.zope.org/pipermail/zope-dev/2008-January/030844.html\n\n- Removed dependency on ZODB.\n\n\n3.5.0a2 (2007-06-02)\n====================\n\n- Made WSGI server really WSGI-compliant by adding variables to the\n environment that are required by the spec.\n\n\n3.5.0a1 (2007-06-02)\n====================\n\n- Added a factory and entry point for PasteDeploy.\n\n\n3.4.3 (2008-08-18)\n==================\n\n- Moved some imports from test modules to their setUp to prevent\n failures when ZEO tests are run by the same testrunner\n\n\n3.4.2 (2008-02-02)\n==================\n\n- Fix of 599 error on conflict error in request\n see: http://mail.zope.org/pipermail/zope-dev/2008-January/030844.html\n\n\n3.4.1 (2007-06-02)\n==================\n\n- Made WSGI server really WSGI-compliant by adding variables to the\n environment that are required by the spec.\n\n\n3.4.0 (2007-06-02)\n==================\n\n- Removed an unused import. Unchanged otherwise.\n\n\n3.4.0a1 (2007-04-22)\n====================\n\n- Initial release as a separate project, corresponds to zope.server\n from Zope 3.4.0a1\n\n- Made WSGI server really WSGI-compliant by adding variables to the\n environment that are required by the spec.\n",
"bugtrack_url": null,
"license": "ZPL 2.1",
"summary": "Zope Server (Web and FTP)",
"version": "5.0",
"project_urls": {
"Homepage": "https://github.com/zopefoundation/zope.server"
},
"split_keywords": [
"zope3",
"server",
"http",
"ftp"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e5864569fb8b3a8d328ea8707ed646d8c6d6ee4f8aea4afdb4bf45ed33bd193d",
"md5": "1b1393c515b63ff4dcf3d34ac4e1e3c9",
"sha256": "24895724a011da6582afcac722641c7e644153a616112d1bcc4a9107af164ba7"
},
"downloads": -1,
"filename": "zope.server-5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1b1393c515b63ff4dcf3d34ac4e1e3c9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 112690,
"upload_time": "2024-09-05T06:43:02",
"upload_time_iso_8601": "2024-09-05T06:43:02.474060Z",
"url": "https://files.pythonhosted.org/packages/e5/86/4569fb8b3a8d328ea8707ed646d8c6d6ee4f8aea4afdb4bf45ed33bd193d/zope.server-5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b069d4e0925c435a267030b2c281f215b2f9fb4f8f191b2d5f025913d396a16e",
"md5": "8b92e5302e8f816d785fef77c448cd4e",
"sha256": "37fa4a4937a1ca3948a949b123e6006c6942019aa68c6567e32957449611e48f"
},
"downloads": -1,
"filename": "zope.server-5.0.tar.gz",
"has_sig": false,
"md5_digest": "8b92e5302e8f816d785fef77c448cd4e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 80388,
"upload_time": "2024-09-05T06:43:04",
"upload_time_iso_8601": "2024-09-05T06:43:04.624256Z",
"url": "https://files.pythonhosted.org/packages/b0/69/d4e0925c435a267030b2c281f215b2f9fb4f8f191b2d5f025913d396a16e/zope.server-5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-05 06:43:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zopefoundation",
"github_project": "zope.server",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"appveyor": true,
"tox": true,
"lcname": "zope.server"
}