zope.server


Namezope.server JSON
Version 5.0 PyPI version JSON
download
home_pagehttps://github.com/zopefoundation/zope.server
SummaryZope Server (Web and FTP)
upload_time2024-09-05 06:43:04
maintainerNone
docs_urlNone
authorZope Foundation and Contributors
requires_python>=3.7
licenseZPL 2.1
keywords zope3 server http ftp
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
.. 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"
}
        
Elapsed time: 0.48380s