zope.app.wsgi


Namezope.app.wsgi JSON
Version 5.2 PyPI version JSON
download
home_pagehttps://github.com/zopefoundation/zope.app.wsgi
SummaryWSGI application for the zope.publisher
upload_time2024-10-21 06:41:44
maintainerNone
docs_urlNone
authorZope Foundation and Contributors
requires_python>=3.8
licenseZPL 2.1
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            This package provides the ``WSGIPublisherApplication`` class which
exposes the object publishing machinery in ``zope.publisher`` as a
WSGI application.  It also lets us bring up the Zope application
server (parsing ``zope.conf`` and ``site.zcml``) with a mere function
call::

    >>> db = zope.app.wsgi.config('zope.conf')

This is especially useful for debugging.

To bring up Zope and obtain the WSGI application object at the same
time, use the ``getWSGIApplication`` function.

This package also provides an easy to use application factory for
PasteDeploy_. You can simply specify an application configuration
like this in your Paste configuration file::

    [app:main]
    use = egg:zope.app.wsgi
    config_file = %(here)s/zope.conf

Look for more documentation inside the package itself.

.. _PasteDeploy : http://pythonpaste.org/deploy/


=========
 CHANGES
=========

5.2 (2024-10-21)
================

- Improve support for ``multipart >= 1``.


5.1 (2024-10-21)
================

- Add support for Python 3.12, 3.13.

- Drop support for Python 3.7.


5.0 (2023-01-19)
================

- Add support for Python 3.11.

- Add support for Python 3.10.

- Drop support for Python 2.7, 3.5, 3.6.


4.4 (2022-07-13)
================

- Add support for Python 3.9.

- Remove unused dependencies on ``zope.configuration``, ``zope.error``,
  ``zope.lifecycleevent``, ``zope.session``, ``zope.testing``, and unused
  test dependencies on ``zope.annotation``, ``zope.login``, and
  ``zope.password``.


4.3.0 (2020-07-06)
==================

- Fix the testlayer's ``http()`` to pass through the request protocol as the
  response protocol, for compatibility with zope.app.testing.functional's
  HTTPCaller. See `PR 21 <https://github.com/zopefoundation/zope.app.wsgi/pull/21>`_.


4.2.0 (2020-03-23)
==================

- Add support for Python 3.7 and 3.8.

- Drop support for Python 3.3 and 3.4.

- Fix the testlayer's ``http()`` to accept leading whitespace in HTTP requests,
  for compatibility with zope.app.testing.functional's HTTPCaller.

- Add a ``server_protocol`` attribute to ``FakeResponse`` so you can customize
  the output to be more compatible with zope.app.testing.functional's
  HTTPCaller.

- Drop support for running the tests using ``python setup.py test``.


4.1.0 (2017-04-27)
==================

- Use ``base64.b64encode`` to avoid deprecation warning with Python 3.

- Add support for PyPy.

- Add support for Python 3.6.

- Fix the testlayer's ``FakeResponse`` assuming that headers were in
  unicode on Python 2, where they should usually be encoded bytes
  already. This could lead to UnicodeDecodeError if the headers
  contained non-ascii characters. Also make it implement
  ``__unicode__`` on Python 2 and ``__bytes__`` on Python 3 to ease
  cross version testing. See `issue 7 <https://github.com/zopefoundation/zope.app.wsgi/issues/7>`_.

4.0.0 (2016-08-08)
==================

- Update dependencies to no longer pin alpha versions of packages which already
  have final releases.

- Drop support for Python 2.6.

- Claim support for Python 3.4 and 3.5. This requires to update to

  - ``zope.app.appsetup`` >= 4.0

  - ``zope.app.publication`` >= 4.0

- Fix a bug occurring in Python 3 when the principal could not be adapted to
  `ILoggingInfo`.

4.0.0a4 (2013-03-19)
====================

- Improve Trove classifiers.

- Fix ``BrowserLayer(allowTearDown=True)`` to actually allow tear downs.


4.0.0a3 (2013-03-03)
====================

- You can now specify additional WSGI middleware components wihtout
  subclassing the ``BrowserLayer`` class.

- `tox` now uses the Zope test runner's `ftest` command to execute tests,
  since setup tests cannot deal with layers, especially when they need to
  spawn sub-proceeses.

- Switched all functional tests to use `WebTest` instead of
  ``zope.testbrowser``. Set up proper layering.

- Do not rely on ``zope.testbrowser.wsgi`` WSGI layer support. It was not
  needed anyways.

- Minimized the ``ftesting.zcml`` setup.

- Backwards incompatibility: if you depend on ``zope.app.wsgi.testlayer``, you
  will need to require ``zope.app.wsgi[testlayer] >= 4.0`` (version constraint
  is there because older zope.app.wsgi releases did not define a ``testlayer``
  extra).


4.0.0a2 (2013-03-02)
====================

- Fixed a bug in WSGI Test Layer setup, where the DB is not correctly set.


4.0.0a1 (2013-02-28)
====================

- Added support for Python 3.3.

- Replaced deprecated ``zope.interface.implements`` usage with equivalent
  ``zope.interface.implementer`` decorator.

- Dropped support for Python 2.4 and 2.5.


3.15.0 (2012-01-19)
===================

- Fixed: zope.app.wsgi.paste.ZopeApplication didn't emit
  ProcessStarting events.

  **NOTE**
    If an application compensated for this by generating the event, it
    will need to stop or there will be multiple events
    emited. (Whether or not multiple events will do any harm is
    application specific.)

3.14.0 (2012-01-10)
===================

- Set the WSGI environment's ``REMOTE_USER`` item (if not already set)
  with the Zope principal label. (This is the same data set in
  the ``wsgi.logging_info`` environment item.)

  This change allows user info to be used by `paste.translogger
  <http://pythonpaste.org/modules/translogger.html>`_ middleware (or
  any similar middleware that uses ``REMOTE_USER``), which provides
  access logging.


3.13.0 (2011-03-15)
===================

- Update to zope.testbrowser 4.0.0 which uses WebTest instead of wsgi_intercept.


3.12.0 (2011-01-25)
===================

- Fixed ``zope.app.wsgi.testlayer.http`` to work with changes made in
  version 3.11.0.


3.11.0 (2011-01-24)
===================

- Moved `wsgi_intercept` support to ``zope.testbrowser.wsgi``, thus
  requiring at least version 3.11 of this package:

  - Moved ``zope.app.wsgi.testlayer.Browser`` to
    ``zope.testbrowser.wsgi.Browser``, but left BBB import here.

  - Split up ``zope.app.wsgi.testlayer.BrowserLayer`` into generic WSGI
    browser layer (``zope.testbrowser.wsgi.Layer``) and ZODB/ZOPE specific
    part (``zope.app.wsgi.testlayer.BrowserLayer`` as before).


3.10.0 (2010-11-18)
===================

- Add pluggability for setting up WSGI middleware in testlayer.


3.9.3 (2010-10-14)
==================

- Python 2.7 compatibility for xmlrpc. Transplant of zope.app.testing r116141.


3.9.2 (2010-05-23)
==================

- Fixed test breakage due to changes in mechanize 0.2.0.


3.9.1 (2010-04-24)
==================

- Add support for testing XMLRPC using zope.app.wsgi.testlayer.

- Fix a bug in the status string handling in zope.app.wsgi.testlayer's
  FakeResponse.


3.9.0 (2010-04-19)
==================

- Return a FakeResponse object in zope.app.wsgi.testlayer.http,
  so it becomes easier to port over tests from zope.app.testing's
  HTTPCaller.

- X-Powered-By header is now stripped by zope.app.wsgi.testlayer as
  it is by zope.app.testing.

- Bugfix: initialize any <logger> defined in the config, as
  zope.app.server does. (Fixes #291147)


3.8.0 (2010-04-14)
==================

- zope.app.wsgi.testlayer is now a lot more compatible with
  the HTTPCaller() functionality in zope.app.testing, which it can
  replace:

  - same transaction behavior - pending transactions are committed
    before request and synchronized afterwards.

  - support for browser.handleErrors (for zope.testbrowser).

  - support for clear-text (non-base64) Basic authentication headers,
    which are easier to read in the tests (though not correct in
    actual HTTP traffic).


3.7.0 (2010-04-13)
==================

- Rewrite tests in order not to dependent on ``zope.app.testing`` and
  ``zope.app.zcmlfiles``.

- ``zope.app.wsgi.testlayer`` introduces new testing functionality that
  can replace the old functionality in ``zope.app.testing``. In addition,
  it supports using ``zope.testbrowser`` with WSGI directly (instead of
  relying on ``zope.app.testing``, which pulls in a lot of dependencies).

  The interesting parts are:

  * ``zope.app.wsgi.testlayer.BrowserLayer``: this sets up a minimal layer
    that allows you to use the new WSGI-enabled Browser.

  * ``zope.app.wsgi.testlayer.Browser``: this is a subclass of Browser from
    ``zope.testbrowser.browser``. Use it instead of
    ``zope.testbrowser.browser`` directly to use the test browser with WSGI.
    You need to use ``BrowserLayer`` with your tests for this to work.

  * ``zope.app.wsgi.testlayer.http``: this is the equivalent to the ``http()``
    function in ``zope.app.testing``. It allows low-level HTTP access
    through WSGI. You need to use ``BrowserLayer`` with your tests for
    this to work.


3.6.1 (2010-01-29)
==================

- Support product configuration sections in Zope configuration files.


3.6.0 (2009-06-20)
==================

- Import database events directly from ``zope.processlifetime``
  instead of using BBB imports in ``zope.app.appsetup``.


3.5.2 (2009-04-03)
==================

- The ``WSGIPublisherApplication`` uses now the ``ILoggingInfo`` concept given
  from zope.publisher.interfaces.logginginfo for log user infos usable for
  access logs. This allows you to implement your own access log user info
  message. See zope.publisher.interfaces.logginginfo.ILoggingInfo for more
  information.


3.5.1 (2009-03-31)
==================

- The ``WSGIPublisherApplication`` call now provides a user name
  in the environment meant for use in logs.


3.5.0 (2009-02-10)
==================

- Make devmode warning message more generic. We don't nesessary have the
  `etc/zope.conf` file nowadays when using buildout-based setups.

- Add an application factory for Paste. So Zope application can now be
  easily deployed with Paste .ini configuration like this::

    [app:main]
    use = egg:zope.app.wsgi
    config_file = %(here)s/zope.conf
    handle_errors = false

  The config_file is a required argument, however the handle_errors
  defaults to True if not specified. Setting it to False allows you to
  make WSGIPublisherApplication not handle exceptions itself but
  propagate them to an upper middleware, like WebError or something.

- The ``WSGIPublisherApplication`` constructor and ``getWSGIApplication``
  function now accept optional ``handle_errors`` argument, described
  above.

- Change mailing list address to zope-dev at zope.org instead of retired
  one.


3.4.1 (2008-07-30)
==================

- Added Trove classifiers.

- Notify ``WSGIPublisherApplicationCreated`` event when WSGI application is
  created.

- Fixed deprecation warning in ``ftesting.zcml``: ZopeSecurityPolicy moved to
  ``zope.securitypolicy``.


3.4.0 (2007-09-14)
==================

- Fixed the tests to run on Python 2.5 as well as Python 2.4.

- Split ``getApplication`` into ``config`` and ``getApplication`` so
  that ``config`` could be reused, for example for debugging.


3.4.0a1 (2007-04-22)
====================

Initial release as a separate project, corresponds to ``zope.app.wsgi``
from Zope 3.4.0a1

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/zopefoundation/zope.app.wsgi",
    "name": "zope.app.wsgi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Zope Foundation and Contributors",
    "author_email": "zope-dev@zope.org",
    "download_url": "https://files.pythonhosted.org/packages/a9/c9/e801f031d098d9857b845ae21cc2e6d87746c1832bf6fa23c1ad6efbb3c7/zope.app.wsgi-5.2.tar.gz",
    "platform": null,
    "description": "This package provides the ``WSGIPublisherApplication`` class which\nexposes the object publishing machinery in ``zope.publisher`` as a\nWSGI application.  It also lets us bring up the Zope application\nserver (parsing ``zope.conf`` and ``site.zcml``) with a mere function\ncall::\n\n    >>> db = zope.app.wsgi.config('zope.conf')\n\nThis is especially useful for debugging.\n\nTo bring up Zope and obtain the WSGI application object at the same\ntime, use the ``getWSGIApplication`` function.\n\nThis package also provides an easy to use application factory for\nPasteDeploy_. You can simply specify an application configuration\nlike this in your Paste configuration file::\n\n    [app:main]\n    use = egg:zope.app.wsgi\n    config_file = %(here)s/zope.conf\n\nLook for more documentation inside the package itself.\n\n.. _PasteDeploy : http://pythonpaste.org/deploy/\n\n\n=========\n CHANGES\n=========\n\n5.2 (2024-10-21)\n================\n\n- Improve support for ``multipart >= 1``.\n\n\n5.1 (2024-10-21)\n================\n\n- Add support for Python 3.12, 3.13.\n\n- Drop support for Python 3.7.\n\n\n5.0 (2023-01-19)\n================\n\n- Add support for Python 3.11.\n\n- Add support for Python 3.10.\n\n- Drop support for Python 2.7, 3.5, 3.6.\n\n\n4.4 (2022-07-13)\n================\n\n- Add support for Python 3.9.\n\n- Remove unused dependencies on ``zope.configuration``, ``zope.error``,\n  ``zope.lifecycleevent``, ``zope.session``, ``zope.testing``, and unused\n  test dependencies on ``zope.annotation``, ``zope.login``, and\n  ``zope.password``.\n\n\n4.3.0 (2020-07-06)\n==================\n\n- Fix the testlayer's ``http()`` to pass through the request protocol as the\n  response protocol, for compatibility with zope.app.testing.functional's\n  HTTPCaller. See `PR 21 <https://github.com/zopefoundation/zope.app.wsgi/pull/21>`_.\n\n\n4.2.0 (2020-03-23)\n==================\n\n- Add support for Python 3.7 and 3.8.\n\n- Drop support for Python 3.3 and 3.4.\n\n- Fix the testlayer's ``http()`` to accept leading whitespace in HTTP requests,\n  for compatibility with zope.app.testing.functional's HTTPCaller.\n\n- Add a ``server_protocol`` attribute to ``FakeResponse`` so you can customize\n  the output to be more compatible with zope.app.testing.functional's\n  HTTPCaller.\n\n- Drop support for running the tests using ``python setup.py test``.\n\n\n4.1.0 (2017-04-27)\n==================\n\n- Use ``base64.b64encode`` to avoid deprecation warning with Python 3.\n\n- Add support for PyPy.\n\n- Add support for Python 3.6.\n\n- Fix the testlayer's ``FakeResponse`` assuming that headers were in\n  unicode on Python 2, where they should usually be encoded bytes\n  already. This could lead to UnicodeDecodeError if the headers\n  contained non-ascii characters. Also make it implement\n  ``__unicode__`` on Python 2 and ``__bytes__`` on Python 3 to ease\n  cross version testing. See `issue 7 <https://github.com/zopefoundation/zope.app.wsgi/issues/7>`_.\n\n4.0.0 (2016-08-08)\n==================\n\n- Update dependencies to no longer pin alpha versions of packages which already\n  have final releases.\n\n- Drop support for Python 2.6.\n\n- Claim support for Python 3.4 and 3.5. This requires to update to\n\n  - ``zope.app.appsetup`` >= 4.0\n\n  - ``zope.app.publication`` >= 4.0\n\n- Fix a bug occurring in Python 3 when the principal could not be adapted to\n  `ILoggingInfo`.\n\n4.0.0a4 (2013-03-19)\n====================\n\n- Improve Trove classifiers.\n\n- Fix ``BrowserLayer(allowTearDown=True)`` to actually allow tear downs.\n\n\n4.0.0a3 (2013-03-03)\n====================\n\n- You can now specify additional WSGI middleware components wihtout\n  subclassing the ``BrowserLayer`` class.\n\n- `tox` now uses the Zope test runner's `ftest` command to execute tests,\n  since setup tests cannot deal with layers, especially when they need to\n  spawn sub-proceeses.\n\n- Switched all functional tests to use `WebTest` instead of\n  ``zope.testbrowser``. Set up proper layering.\n\n- Do not rely on ``zope.testbrowser.wsgi`` WSGI layer support. It was not\n  needed anyways.\n\n- Minimized the ``ftesting.zcml`` setup.\n\n- Backwards incompatibility: if you depend on ``zope.app.wsgi.testlayer``, you\n  will need to require ``zope.app.wsgi[testlayer] >= 4.0`` (version constraint\n  is there because older zope.app.wsgi releases did not define a ``testlayer``\n  extra).\n\n\n4.0.0a2 (2013-03-02)\n====================\n\n- Fixed a bug in WSGI Test Layer setup, where the DB is not correctly set.\n\n\n4.0.0a1 (2013-02-28)\n====================\n\n- Added support for Python 3.3.\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\n3.15.0 (2012-01-19)\n===================\n\n- Fixed: zope.app.wsgi.paste.ZopeApplication didn't emit\n  ProcessStarting events.\n\n  **NOTE**\n    If an application compensated for this by generating the event, it\n    will need to stop or there will be multiple events\n    emited. (Whether or not multiple events will do any harm is\n    application specific.)\n\n3.14.0 (2012-01-10)\n===================\n\n- Set the WSGI environment's ``REMOTE_USER`` item (if not already set)\n  with the Zope principal label. (This is the same data set in\n  the ``wsgi.logging_info`` environment item.)\n\n  This change allows user info to be used by `paste.translogger\n  <http://pythonpaste.org/modules/translogger.html>`_ middleware (or\n  any similar middleware that uses ``REMOTE_USER``), which provides\n  access logging.\n\n\n3.13.0 (2011-03-15)\n===================\n\n- Update to zope.testbrowser 4.0.0 which uses WebTest instead of wsgi_intercept.\n\n\n3.12.0 (2011-01-25)\n===================\n\n- Fixed ``zope.app.wsgi.testlayer.http`` to work with changes made in\n  version 3.11.0.\n\n\n3.11.0 (2011-01-24)\n===================\n\n- Moved `wsgi_intercept` support to ``zope.testbrowser.wsgi``, thus\n  requiring at least version 3.11 of this package:\n\n  - Moved ``zope.app.wsgi.testlayer.Browser`` to\n    ``zope.testbrowser.wsgi.Browser``, but left BBB import here.\n\n  - Split up ``zope.app.wsgi.testlayer.BrowserLayer`` into generic WSGI\n    browser layer (``zope.testbrowser.wsgi.Layer``) and ZODB/ZOPE specific\n    part (``zope.app.wsgi.testlayer.BrowserLayer`` as before).\n\n\n3.10.0 (2010-11-18)\n===================\n\n- Add pluggability for setting up WSGI middleware in testlayer.\n\n\n3.9.3 (2010-10-14)\n==================\n\n- Python 2.7 compatibility for xmlrpc. Transplant of zope.app.testing r116141.\n\n\n3.9.2 (2010-05-23)\n==================\n\n- Fixed test breakage due to changes in mechanize 0.2.0.\n\n\n3.9.1 (2010-04-24)\n==================\n\n- Add support for testing XMLRPC using zope.app.wsgi.testlayer.\n\n- Fix a bug in the status string handling in zope.app.wsgi.testlayer's\n  FakeResponse.\n\n\n3.9.0 (2010-04-19)\n==================\n\n- Return a FakeResponse object in zope.app.wsgi.testlayer.http,\n  so it becomes easier to port over tests from zope.app.testing's\n  HTTPCaller.\n\n- X-Powered-By header is now stripped by zope.app.wsgi.testlayer as\n  it is by zope.app.testing.\n\n- Bugfix: initialize any <logger> defined in the config, as\n  zope.app.server does. (Fixes #291147)\n\n\n3.8.0 (2010-04-14)\n==================\n\n- zope.app.wsgi.testlayer is now a lot more compatible with\n  the HTTPCaller() functionality in zope.app.testing, which it can\n  replace:\n\n  - same transaction behavior - pending transactions are committed\n    before request and synchronized afterwards.\n\n  - support for browser.handleErrors (for zope.testbrowser).\n\n  - support for clear-text (non-base64) Basic authentication headers,\n    which are easier to read in the tests (though not correct in\n    actual HTTP traffic).\n\n\n3.7.0 (2010-04-13)\n==================\n\n- Rewrite tests in order not to dependent on ``zope.app.testing`` and\n  ``zope.app.zcmlfiles``.\n\n- ``zope.app.wsgi.testlayer`` introduces new testing functionality that\n  can replace the old functionality in ``zope.app.testing``. In addition,\n  it supports using ``zope.testbrowser`` with WSGI directly (instead of\n  relying on ``zope.app.testing``, which pulls in a lot of dependencies).\n\n  The interesting parts are:\n\n  * ``zope.app.wsgi.testlayer.BrowserLayer``: this sets up a minimal layer\n    that allows you to use the new WSGI-enabled Browser.\n\n  * ``zope.app.wsgi.testlayer.Browser``: this is a subclass of Browser from\n    ``zope.testbrowser.browser``. Use it instead of\n    ``zope.testbrowser.browser`` directly to use the test browser with WSGI.\n    You need to use ``BrowserLayer`` with your tests for this to work.\n\n  * ``zope.app.wsgi.testlayer.http``: this is the equivalent to the ``http()``\n    function in ``zope.app.testing``. It allows low-level HTTP access\n    through WSGI. You need to use ``BrowserLayer`` with your tests for\n    this to work.\n\n\n3.6.1 (2010-01-29)\n==================\n\n- Support product configuration sections in Zope configuration files.\n\n\n3.6.0 (2009-06-20)\n==================\n\n- Import database events directly from ``zope.processlifetime``\n  instead of using BBB imports in ``zope.app.appsetup``.\n\n\n3.5.2 (2009-04-03)\n==================\n\n- The ``WSGIPublisherApplication`` uses now the ``ILoggingInfo`` concept given\n  from zope.publisher.interfaces.logginginfo for log user infos usable for\n  access logs. This allows you to implement your own access log user info\n  message. See zope.publisher.interfaces.logginginfo.ILoggingInfo for more\n  information.\n\n\n3.5.1 (2009-03-31)\n==================\n\n- The ``WSGIPublisherApplication`` call now provides a user name\n  in the environment meant for use in logs.\n\n\n3.5.0 (2009-02-10)\n==================\n\n- Make devmode warning message more generic. We don't nesessary have the\n  `etc/zope.conf` file nowadays when using buildout-based setups.\n\n- Add an application factory for Paste. So Zope application can now be\n  easily deployed with Paste .ini configuration like this::\n\n    [app:main]\n    use = egg:zope.app.wsgi\n    config_file = %(here)s/zope.conf\n    handle_errors = false\n\n  The config_file is a required argument, however the handle_errors\n  defaults to True if not specified. Setting it to False allows you to\n  make WSGIPublisherApplication not handle exceptions itself but\n  propagate them to an upper middleware, like WebError or something.\n\n- The ``WSGIPublisherApplication`` constructor and ``getWSGIApplication``\n  function now accept optional ``handle_errors`` argument, described\n  above.\n\n- Change mailing list address to zope-dev at zope.org instead of retired\n  one.\n\n\n3.4.1 (2008-07-30)\n==================\n\n- Added Trove classifiers.\n\n- Notify ``WSGIPublisherApplicationCreated`` event when WSGI application is\n  created.\n\n- Fixed deprecation warning in ``ftesting.zcml``: ZopeSecurityPolicy moved to\n  ``zope.securitypolicy``.\n\n\n3.4.0 (2007-09-14)\n==================\n\n- Fixed the tests to run on Python 2.5 as well as Python 2.4.\n\n- Split ``getApplication`` into ``config`` and ``getApplication`` so\n  that ``config`` could be reused, for example for debugging.\n\n\n3.4.0a1 (2007-04-22)\n====================\n\nInitial release as a separate project, corresponds to ``zope.app.wsgi``\nfrom Zope 3.4.0a1\n",
    "bugtrack_url": null,
    "license": "ZPL 2.1",
    "summary": "WSGI application for the zope.publisher",
    "version": "5.2",
    "project_urls": {
        "Homepage": "https://github.com/zopefoundation/zope.app.wsgi",
        "Issue Tracker": "https://github.com/zopefoundation/zope.app.wsgi/issues",
        "Sources": "https://github.com/zopefoundation/zope.app.wsgi"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38e336d8125b50d48e42eab55c64db93ba5622d197805d46b9aa2444289212da",
                "md5": "76a517016c6c9401cf7414eb92279401",
                "sha256": "80f5a5e4be557d38fd6e8f9f88669ed5ac54be74678d37c61aa797f6b0a2095d"
            },
            "downloads": -1,
            "filename": "zope.app.wsgi-5.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "76a517016c6c9401cf7414eb92279401",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 28973,
            "upload_time": "2024-10-21T06:41:42",
            "upload_time_iso_8601": "2024-10-21T06:41:42.458380Z",
            "url": "https://files.pythonhosted.org/packages/38/e3/36d8125b50d48e42eab55c64db93ba5622d197805d46b9aa2444289212da/zope.app.wsgi-5.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a9c9e801f031d098d9857b845ae21cc2e6d87746c1832bf6fa23c1ad6efbb3c7",
                "md5": "01c3b50e7486f094168c6cad393767ae",
                "sha256": "343e2b07726a1392a57b79e567a872c51f5ba167cbe6d2a2447b775e13ce7228"
            },
            "downloads": -1,
            "filename": "zope.app.wsgi-5.2.tar.gz",
            "has_sig": false,
            "md5_digest": "01c3b50e7486f094168c6cad393767ae",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 28401,
            "upload_time": "2024-10-21T06:41:44",
            "upload_time_iso_8601": "2024-10-21T06:41:44.775231Z",
            "url": "https://files.pythonhosted.org/packages/a9/c9/e801f031d098d9857b845ae21cc2e6d87746c1832bf6fa23c1ad6efbb3c7/zope.app.wsgi-5.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-21 06:41:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "zopefoundation",
    "github_project": "zope.app.wsgi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "zope.app.wsgi"
}
        
Elapsed time: 0.38022s