{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/tmp.lo46gD54yV/b1/cherrypy3_18.6.1-1_i386.changes", "source2": "/srv/reproducible-results/rbuild-debian/tmp.lo46gD54yV/b2/cherrypy3_18.6.1-1_i386.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n- 1baeeec894ba09419a67f093f1a8c5f3 844712 doc optional python-cherrypy3-doc_18.6.1-1_all.deb\n+ 72d4d3b21bdf3501a7297d752d46112b 845116 doc optional python-cherrypy3-doc_18.6.1-1_all.deb\n 0c9cf2acfa7129a56cfa6af8db6d097d 220752 python optional python3-cherrypy3_18.6.1-1_all.deb\n"}, {"source1": "python-cherrypy3-doc_18.6.1-1_all.deb", "source2": "python-cherrypy3-doc_18.6.1-1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2021-07-08 13:33:36.000000 debian-binary\n--rw-r--r-- 0 0 0 10160 2021-07-08 13:33:36.000000 control.tar.xz\n--rw-r--r-- 0 0 0 834360 2021-07-08 13:33:36.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 10164 2021-07-08 13:33:36.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 834760 2021-07-08 13:33:36.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,13 +1,13 @@\n Package: python-cherrypy3-doc\n Source: cherrypy3\n Version: 18.6.1-1\n Architecture: all\n Maintainer: Debian Python Team \n-Installed-Size: 8250\n+Installed-Size: 8266\n Depends: libjs-sphinxdoc (>= 2.4.3-5~)\n Recommends: python3-cherrypy3\n Section: doc\n Priority: optional\n Multi-Arch: foreign\n Homepage: https://www.cherrypy.org/\n Description: Documentation for CherryPy web framework\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -256,141 +256,141 @@\n -rw-r--r-- 0 root (0) root (0) 17835 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/html/_static/images/cherrypy_logo_big.png\n -rw-r--r-- 0 root (0) root (0) 5172 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/html/_static/images/cpreturn.gif\n -rw-r--r-- 0 root (0) root (0) 8069 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/html/_static/images/cpyield.gif\n -rw-r--r-- 0 root (0) root (0) 153268 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/html/_static/images/sushibelt.JPG\n -rw-r--r-- 0 root (0) root (0) 90 2021-01-01 06:53:29.000000 ./usr/share/doc/python-cherrypy3-doc/html/_static/minus.png\n -rw-r--r-- 0 root (0) root (0) 90 2021-01-01 06:53:29.000000 ./usr/share/doc/python-cherrypy3-doc/html/_static/plus.png\n -rw-r--r-- 0 root (0) root (0) 4780 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/_static/pygments.css\n--rw-r--r-- 0 root (0) root (0) 66235 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/advanced.html\n--rw-r--r-- 0 root (0) root (0) 80670 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/basics.html\n--rw-r--r-- 0 root (0) root (0) 52582 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/config.html\n+-rw-r--r-- 0 root (0) root (0) 66617 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/advanced.html\n+-rw-r--r-- 0 root (0) root (0) 81173 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/basics.html\n+-rw-r--r-- 0 root (0) root (0) 52738 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/config.html\n -rw-r--r-- 0 root (0) root (0) 7356 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/contribute.html\n -rw-r--r-- 0 root (0) root (0) 53328 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/deploy.html\n -rw-r--r-- 0 root (0) root (0) 4495 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/development.html\n -rw-r--r-- 0 root (0) root (0) 4445 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/enterprise.html\n -rw-r--r-- 0 root (0) root (0) 68989 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/extend.html\n -rw-r--r-- 0 root (0) root (0) 287150 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/genindex.html\n--rw-r--r-- 0 root (0) root (0) 5796 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/glossary.html\n--rw-r--r-- 0 root (0) root (0) 61847 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/history.html\n+-rw-r--r-- 0 root (0) root (0) 5916 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/glossary.html\n+-rw-r--r-- 0 root (0) root (0) 61982 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/history.html\n -rw-r--r-- 0 root (0) root (0) 6360 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/index.html\n--rw-r--r-- 0 root (0) root (0) 16008 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/install.html\n+-rw-r--r-- 0 root (0) root (0) 16128 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/install.html\n -rw-r--r-- 0 root (0) root (0) 16934 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/intro.html\n -rw-r--r-- 0 root (0) root (0) 15410 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/objects.inv\n drwxr-xr-x 0 root (0) root (0) 0 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/\n -rw-r--r-- 0 root (0) root (0) 7088 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.__main__.html\n--rw-r--r-- 0 root (0) root (0) 22641 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpchecker.html\n+-rw-r--r-- 0 root (0) root (0) 22763 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpchecker.html\n -rw-r--r-- 0 root (0) root (0) 10834 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpcompat.html\n--rw-r--r-- 0 root (0) root (0) 21615 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpconfig.html\n--rw-r--r-- 0 root (0) root (0) 26668 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpdispatch.html\n--rw-r--r-- 0 root (0) root (0) 34794 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cperror.html\n--rw-r--r-- 0 root (0) root (0) 36211 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cplogging.html\n--rw-r--r-- 0 root (0) root (0) 16068 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpmodpy.html\n+-rw-r--r-- 0 root (0) root (0) 21737 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpconfig.html\n+-rw-r--r-- 0 root (0) root (0) 27034 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpdispatch.html\n+-rw-r--r-- 0 root (0) root (0) 34920 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cperror.html\n+-rw-r--r-- 0 root (0) root (0) 37225 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cplogging.html\n+-rw-r--r-- 0 root (0) root (0) 16312 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpmodpy.html\n -rw-r--r-- 0 root (0) root (0) 10578 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpnative_server.html\n--rw-r--r-- 0 root (0) root (0) 56356 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpreqbody.html\n--rw-r--r-- 0 root (0) root (0) 53581 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cprequest.html\n+-rw-r--r-- 0 root (0) root (0) 56720 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpreqbody.html\n+-rw-r--r-- 0 root (0) root (0) 54310 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cprequest.html\n -rw-r--r-- 0 root (0) root (0) 22270 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpserver.html\n--rw-r--r-- 0 root (0) root (0) 33794 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptools.html\n--rw-r--r-- 0 root (0) root (0) 21214 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptree.html\n--rw-r--r-- 0 root (0) root (0) 24924 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpwsgi.html\n+-rw-r--r-- 0 root (0) root (0) 34160 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptools.html\n+-rw-r--r-- 0 root (0) root (0) 21458 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptree.html\n+-rw-r--r-- 0 root (0) root (0) 25656 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpwsgi.html\n -rw-r--r-- 0 root (0) root (0) 10787 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpwsgi_server.html\n--rw-r--r-- 0 root (0) root (0) 20009 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._helper.html\n+-rw-r--r-- 0 root (0) root (0) 20131 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._helper.html\n -rw-r--r-- 0 root (0) root (0) 8343 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._json.html\n -rw-r--r-- 0 root (0) root (0) 8925 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.daemon.html\n--rw-r--r-- 0 root (0) root (0) 68857 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.html\n+-rw-r--r-- 0 root (0) root (0) 69227 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.html\n -rw-r--r-- 0 root (0) root (0) 13498 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.auth_basic.html\n--rw-r--r-- 0 root (0) root (0) 29011 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.auth_digest.html\n--rw-r--r-- 0 root (0) root (0) 25987 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.caching.html\n--rw-r--r-- 0 root (0) root (0) 17832 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.covercp.html\n--rw-r--r-- 0 root (0) root (0) 42176 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cpstats.html\n--rw-r--r-- 0 root (0) root (0) 35627 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cptools.html\n--rw-r--r-- 0 root (0) root (0) 19342 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.encoding.html\n--rw-r--r-- 0 root (0) root (0) 17202 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.gctools.html\n--rw-r--r-- 0 root (0) root (0) 16389 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.html\n--rw-r--r-- 0 root (0) root (0) 33063 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.httputil.html\n+-rw-r--r-- 0 root (0) root (0) 29133 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.auth_digest.html\n+-rw-r--r-- 0 root (0) root (0) 26228 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.caching.html\n+-rw-r--r-- 0 root (0) root (0) 17956 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.covercp.html\n+-rw-r--r-- 0 root (0) root (0) 42676 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cpstats.html\n+-rw-r--r-- 0 root (0) root (0) 35749 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cptools.html\n+-rw-r--r-- 0 root (0) root (0) 19586 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.encoding.html\n+-rw-r--r-- 0 root (0) root (0) 17446 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.gctools.html\n+-rw-r--r-- 0 root (0) root (0) 16511 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.html\n+-rw-r--r-- 0 root (0) root (0) 33307 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.httputil.html\n -rw-r--r-- 0 root (0) root (0) 11677 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.jsontools.html\n--rw-r--r-- 0 root (0) root (0) 12577 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.locking.html\n--rw-r--r-- 0 root (0) root (0) 18890 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.profiler.html\n--rw-r--r-- 0 root (0) root (0) 32455 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.reprconf.html\n--rw-r--r-- 0 root (0) root (0) 56562 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.sessions.html\n+-rw-r--r-- 0 root (0) root (0) 13069 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.locking.html\n+-rw-r--r-- 0 root (0) root (0) 19134 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.profiler.html\n+-rw-r--r-- 0 root (0) root (0) 32959 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.reprconf.html\n+-rw-r--r-- 0 root (0) root (0) 56684 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.sessions.html\n -rw-r--r-- 0 root (0) root (0) 19323 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.static.html\n -rw-r--r-- 0 root (0) root (0) 11110 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.xmlrpcutil.html\n -rw-r--r-- 0 root (0) root (0) 8362 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.html\n--rw-r--r-- 0 root (0) root (0) 49487 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.plugins.html\n--rw-r--r-- 0 root (0) root (0) 32455 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.servers.html\n--rw-r--r-- 0 root (0) root (0) 13854 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.win32.html\n--rw-r--r-- 0 root (0) root (0) 29983 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.wspbus.html\n--rw-r--r-- 0 root (0) root (0) 9315 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.scaffold.html\n--rw-r--r-- 0 root (0) root (0) 18213 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_decorators.html\n--rw-r--r-- 0 root (0) root (0) 15430 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_states_demo.html\n--rw-r--r-- 0 root (0) root (0) 22888 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.benchmark.html\n--rw-r--r-- 0 root (0) root (0) 13229 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.checkerdemo.html\n--rw-r--r-- 0 root (0) root (0) 43176 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.helper.html\n+-rw-r--r-- 0 root (0) root (0) 50267 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.plugins.html\n+-rw-r--r-- 0 root (0) root (0) 33221 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.servers.html\n+-rw-r--r-- 0 root (0) root (0) 13973 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.win32.html\n+-rw-r--r-- 0 root (0) root (0) 30475 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.wspbus.html\n+-rw-r--r-- 0 root (0) root (0) 9437 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.scaffold.html\n+-rw-r--r-- 0 root (0) root (0) 18457 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_decorators.html\n+-rw-r--r-- 0 root (0) root (0) 15552 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_states_demo.html\n+-rw-r--r-- 0 root (0) root (0) 23132 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.benchmark.html\n+-rw-r--r-- 0 root (0) root (0) 13351 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.checkerdemo.html\n+-rw-r--r-- 0 root (0) root (0) 43428 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.helper.html\n -rw-r--r-- 0 root (0) root (0) 21428 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.html\n--rw-r--r-- 0 root (0) root (0) 22089 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.logtest.html\n+-rw-r--r-- 0 root (0) root (0) 22211 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.logtest.html\n -rw-r--r-- 0 root (0) root (0) 21327 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.modfastcgi.html\n -rw-r--r-- 0 root (0) root (0) 20067 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.modfcgid.html\n -rw-r--r-- 0 root (0) root (0) 19668 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.modpy.html\n -rw-r--r-- 0 root (0) root (0) 19918 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.modwsgi.html\n--rw-r--r-- 0 root (0) root (0) 14877 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.sessiondemo.html\n+-rw-r--r-- 0 root (0) root (0) 14999 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.sessiondemo.html\n -rw-r--r-- 0 root (0) root (0) 16064 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_auth_basic.html\n -rw-r--r-- 0 root (0) root (0) 17944 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_auth_digest.html\n -rw-r--r-- 0 root (0) root (0) 22732 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_bus.html\n -rw-r--r-- 0 root (0) root (0) 18401 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_caching.html\n -rw-r--r-- 0 root (0) root (0) 22394 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_config.html\n -rw-r--r-- 0 root (0) root (0) 16733 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_config_server.html\n -rw-r--r-- 0 root (0) root (0) 30729 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_conn.html\n--rw-r--r-- 0 root (0) root (0) 27023 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_core.html\n+-rw-r--r-- 0 root (0) root (0) 27145 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_core.html\n -rw-r--r-- 0 root (0) root (0) 16430 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_dynamicobjectmapping.html\n -rw-r--r-- 0 root (0) root (0) 20785 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_encoding.html\n -rw-r--r-- 0 root (0) root (0) 15390 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_etags.html\n -rw-r--r-- 0 root (0) root (0) 21575 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_http.html\n -rw-r--r-- 0 root (0) root (0) 14922 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_httputil.html\n--rw-r--r-- 0 root (0) root (0) 29019 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_iterator.html\n+-rw-r--r-- 0 root (0) root (0) 29141 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_iterator.html\n -rw-r--r-- 0 root (0) root (0) 15391 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_json.html\n -rw-r--r-- 0 root (0) root (0) 21475 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_logging.html\n -rw-r--r-- 0 root (0) root (0) 17425 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_mime.html\n -rw-r--r-- 0 root (0) root (0) 21782 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_misc_tools.html\n -rw-r--r-- 0 root (0) root (0) 13831 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_native.html\n -rw-r--r-- 0 root (0) root (0) 18498 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_objectmapping.html\n -rw-r--r-- 0 root (0) root (0) 15427 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_params.html\n--rw-r--r-- 0 root (0) root (0) 13757 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_plugins.html\n+-rw-r--r-- 0 root (0) root (0) 13879 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_plugins.html\n -rw-r--r-- 0 root (0) root (0) 15090 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_proxy.html\n -rw-r--r-- 0 root (0) root (0) 14600 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_refleaks.html\n -rw-r--r-- 0 root (0) root (0) 23121 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_request_obj.html\n -rw-r--r-- 0 root (0) root (0) 14749 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_routes.html\n -rw-r--r-- 0 root (0) root (0) 28338 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_session.html\n -rw-r--r-- 0 root (0) root (0) 14818 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_sessionauthenticate.html\n--rw-r--r-- 0 root (0) root (0) 27673 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_states.html\n+-rw-r--r-- 0 root (0) root (0) 27795 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_states.html\n -rw-r--r-- 0 root (0) root (0) 25823 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_static.html\n--rw-r--r-- 0 root (0) root (0) 21300 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_tools.html\n+-rw-r--r-- 0 root (0) root (0) 21422 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_tools.html\n -rw-r--r-- 0 root (0) root (0) 20791 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_tutorials.html\n -rw-r--r-- 0 root (0) root (0) 15156 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_virtualhost.html\n -rw-r--r-- 0 root (0) root (0) 14586 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_wsgi_ns.html\n--rw-r--r-- 0 root (0) root (0) 19608 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_wsgi_unix_socket.html\n+-rw-r--r-- 0 root (0) root (0) 19752 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_wsgi_unix_socket.html\n -rw-r--r-- 0 root (0) root (0) 14641 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_wsgi_vhost.html\n -rw-r--r-- 0 root (0) root (0) 16581 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_wsgiapps.html\n -rw-r--r-- 0 root (0) root (0) 14820 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_xmlrpc.html\n -rw-r--r-- 0 root (0) root (0) 12432 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.webtest.html\n -rw-r--r-- 0 root (0) root (0) 9321 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.html\n--rw-r--r-- 0 root (0) root (0) 8578 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut01_helloworld.html\n--rw-r--r-- 0 root (0) root (0) 9162 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut02_expose_methods.html\n--rw-r--r-- 0 root (0) root (0) 9261 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut03_get_and_post.html\n--rw-r--r-- 0 root (0) root (0) 12106 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut04_complex_site.html\n--rw-r--r-- 0 root (0) root (0) 12983 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut05_derived_objects.html\n--rw-r--r-- 0 root (0) root (0) 9836 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut06_default_method.html\n--rw-r--r-- 0 root (0) root (0) 9169 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut07_sessions.html\n--rw-r--r-- 0 root (0) root (0) 10022 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut08_generators_and_yield.html\n--rw-r--r-- 0 root (0) root (0) 11507 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut09_files.html\n--rw-r--r-- 0 root (0) root (0) 10701 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut10_http_errors.html\n+-rw-r--r-- 0 root (0) root (0) 8700 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut01_helloworld.html\n+-rw-r--r-- 0 root (0) root (0) 9284 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut02_expose_methods.html\n+-rw-r--r-- 0 root (0) root (0) 9383 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut03_get_and_post.html\n+-rw-r--r-- 0 root (0) root (0) 12594 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut04_complex_site.html\n+-rw-r--r-- 0 root (0) root (0) 13105 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut05_derived_objects.html\n+-rw-r--r-- 0 root (0) root (0) 9958 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut06_default_method.html\n+-rw-r--r-- 0 root (0) root (0) 9291 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut07_sessions.html\n+-rw-r--r-- 0 root (0) root (0) 10144 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut08_generators_and_yield.html\n+-rw-r--r-- 0 root (0) root (0) 11629 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut09_files.html\n+-rw-r--r-- 0 root (0) root (0) 10825 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut10_http_errors.html\n -rw-r--r-- 0 root (0) root (0) 10013 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/pkg/modules.html\n -rw-r--r-- 0 root (0) root (0) 29659 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/py-modindex.html\n -rw-r--r-- 0 root (0) root (0) 3968 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/search.html\n -rw-r--r-- 0 root (0) root (0) 154090 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 7012 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/support.html\n--rw-r--r-- 0 root (0) root (0) 113398 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/tutorials.html\n+-rw-r--r-- 0 root (0) root (0) 113524 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/html/tutorials.html\n drwxr-xr-x 0 root (0) root (0) 0 2021-07-03 22:33:32.000000 ./usr/share/doc/python-cherrypy3-doc/scaffold/\n -rw-r--r-- 0 root (0) root (0) 1997 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/scaffold/__init__.py\n -rw-r--r-- 0 root (0) root (0) 930 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/scaffold/apache-fcgi.conf\n -rw-r--r-- 0 root (0) root (0) 62 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/scaffold/example.conf\n -rw-r--r-- 0 root (0) root (0) 426 2016-12-16 19:38:54.000000 ./usr/share/doc/python-cherrypy3-doc/scaffold/site.conf\n drwxr-xr-x 0 root (0) root (0) 0 2021-07-08 13:33:36.000000 ./usr/share/doc/python-cherrypy3-doc/scaffold/static/\n -rw-r--r-- 0 root (0) root (0) 6347 2019-02-28 16:09:17.000000 ./usr/share/doc/python-cherrypy3-doc/scaffold/static/made_with_cherrypy_small.png\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/advanced.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/advanced.html", "unified_diff": "@@ -354,15 +354,15 @@\n \n \n
\n

Response timing\u00b6

\n

CherryPy responses include an attribute:

\n
\n
    \n-
  • response.time: the time.time() at which the response began

  • \n+
  • response.time: the time.time() at which the response began

  • \n
\n
\n
\n
\n

Deal with signals\u00b6

\n

This engine plugin is instantiated automatically as\n cherrypy.engine.signal_handler.\n@@ -640,24 +640,24 @@\n \n helper.CPWebCase.interactive = False\n

\n \n
\n

Note

\n

Although they are written using the typical pattern the\n-unittest module supports, they are not bare unit tests.\n+unittest module supports, they are not bare unit tests.\n Indeed, a whole CherryPy stack is started for you and runs your application.\n If you want to really unit test your CherryPy application, meaning without\n having to start a server, you may want to have a look at\n this recipe.

\n
\n
\n

Note

\n

The helper class derives from\n-unittest.TestCase class. For this reason, running from\n+unittest.TestCase class. For this reason, running from\n pytest,\n there are some limitations with respect to standard pytest tests,\n especially if you are grouping the tests in test classes.\n You can find more details at this page.

\n
\n \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/basics.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/basics.html", "unified_diff": "@@ -257,24 +257,24 @@\n \n
\n

Disable logging\u00b6

\n

You may be interested in disabling either logs.

\n

To disable file logging, simply set a en empty string to the\n log.access_file or log.error_file keys in your\n global configuration.

\n-

To disable, console logging, set log.screen to False.

\n+

To disable, console logging, set log.screen to False.

\n
cherrypy.config.update({'log.screen': False,\n                         'log.access_file': '',\n                         'log.error_file': ''})\n 
\n
\n
\n
\n

Play along with your other loggers\u00b6

\n-

Your application may obviously already use the logging\n+

Your application may obviously already use the logging\n module to trace application level messages. Below is a simple\n example on setting it up.

\n
import logging\n import logging.config\n \n import cherrypy\n \n@@ -608,15 +608,15 @@\n 
\n
\n

Static content serving\u00b6

\n

CherryPy can serve your static content such as images, javascript and\n CSS resources, etc.

\n
\n

Note

\n-

CherryPy uses the mimetypes module to determine the\n+

CherryPy uses the mimetypes module to determine the\n best content-type to serve a particular resource. If the choice\n is not valid, you can simply set more media-types as follows:

\n
import mimetypes\n mimetypes.types_map['.csv'] = 'text/csv'\n 
\n
\n
\n@@ -707,15 +707,15 @@\n
class Root(object):\n     @cherrypy.expose\n     @cherrypy.tools.json_in()\n     def index(self):\n         data = cherrypy.request.json\n 
\n
\n-

The json attribute attached to the request contains\n+

The json attribute attached to the request contains\n the decoded content.

\n
\n
\n

Encoding response\u00b6

\n

To automatically encode the content of a response using JSON:

\n
class Root(object):\n     @cherrypy.expose\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/config.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/config.html", "unified_diff": "@@ -382,15 +382,15 @@\n 

engine\u00b6

\n

Entries in this namespace controls the \u2018application engine\u2019. These can only be\n declared in the global config. Any attribute of\n cherrypy.engine may be set\n in config; however, there are a few extra entries available in config:

\n
\n
    \n-
  • Plugin attributes. Many of the Engine Plugins are themselves\n+

  • Plugin attributes. Many of the Engine Plugins are themselves\n attributes of cherrypy.engine. You can set any attribute of an attached\n plugin by simply naming it. For example, there is an instance of the\n Autoreloader class at\n engine.autoreload; you can set its \u201cfrequency\u201d attribute via the config\n entry engine.autoreload.frequency = 60. In addition, you can turn such\n plugins on and off by setting engine.autoreload.on = True or False.

  • \n
  • engine.SIGHUP/SIGTERM: These entries can be used to set the list of\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/glossary.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/glossary.html", "unified_diff": "@@ -37,15 +37,15 @@\n

    \n
    application

    A CherryPy application is simply a class instance containing\n at least one page handler.

    \n
    \n
    controller

    Loose name commonly given to a class owning at least one exposed method

    \n
    \n
    exposed

    A Python function or method which has an attribute called exposed\n-set to True. This attribute can be set directly or via the\n+set to True. This attribute can be set directly or via the\n cherrypy.expose() decorator.

    \n
    @cherrypy.expose\n def method(...):\n     ...\n 
    \n
    \n

    is equivalent to:

    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/history.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/history.html", "unified_diff": "@@ -314,15 +314,15 @@\n
\n
\n
\n

v12.0.1\u00b6

\n \n
\n
\n

v12.0.0\u00b6

\n
    \n
  • Drop support for Python 3.1 and 3.2.

  • \n
  • #1625: Removed response timeout and timeout monitor and\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/install.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/install.html", "unified_diff": "@@ -75,15 +75,15 @@\n will require you install certain packages. To simplify installing additional\n dependencies CherryPy enables you to specify extras in your requirements (e.g.\n cherrypy[json,routes_dispatcher,ssl]):

    \n
      \n
    • doc \u2013 for documentation related stuff

    • \n
    • json \u2013 for custom JSON processing library

    • \n
    • routes_dispatcher \u2013 routes for declarative URL mapping dispatcher

    • \n-
    • ssl \u2013 for OpenSSL bindings, useful in Python environments not having the builtin ssl module

    • \n+
    • ssl \u2013 for OpenSSL bindings, useful in Python environments not having the builtin ssl module

    • \n
    • testing

    • \n
    • memcached_session \u2013 enables memcached backend session

    • \n
    • xcgi

    • \n
    \n
\n
\n

Supported python version\u00b6

\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpchecker.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpchecker.html", "unified_diff": "@@ -34,15 +34,15 @@\n \n
\n

cherrypy._cpchecker module\u00b6

\n

Checker for CherryPy sites and mounted apps.

\n
\n
\n class cherrypy._cpchecker.Checker[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A checker for CherryPy sites and their mounted applications.

\n

When this object is called at engine startup, it executes each\n of its own methods whose names start with check_. If you wish\n to disable selected checks, simply add a line in your global\n config which sets the appropriate method to False:

\n
[global]\n checker.check_skipped_app_config = False\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpconfig.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpconfig.html", "unified_diff": "@@ -155,15 +155,15 @@\n 
\n \n \n \n
\n
\n class cherrypy._cpconfig._Vars(target)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

Adapter allowing setting a default attribute on a function or class.

\n
\n
\n setdefault(key, default)[source]\u00b6
\n
\n \n
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpdispatch.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpdispatch.html", "unified_diff": "@@ -40,15 +40,15 @@\n request attributes, and the application architecture. The core calls the\n dispatcher as early as possible, passing it a \u2018path_info\u2019 argument.

\n

The default dispatcher discovers the page handler by matching path_info\n to a hierarchical arrangement of objects, starting at request.app.root.

\n
\n
\n class cherrypy._cpdispatch.Dispatcher(dispatch_method_name=None, translate={33: 95, 34: 95, 35: 95, 36: 95, 37: 95, 38: 95, 39: 95, 40: 95, 41: 95, 42: 95, 43: 95, 44: 95, 45: 95, 46: 95, 47: 95, 58: 95, 59: 95, 60: 95, 61: 95, 62: 95, 63: 95, 64: 95, 91: 95, 92: 95, 93: 95, 94: 95, 95: 95, 96: 95, 123: 95, 124: 95, 125: 95, 126: 95})[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

CherryPy Dispatcher which walks a tree of objects to find a handler.

\n

The tree is rooted at cherrypy.request.app.root, and each hierarchical\n component in the path_info argument is matched to a corresponding nested\n attribute of the root object. Matching handlers must have an \u2018exposed\u2019\n attribute which evaluates to True. The special method name \u201cindex\u201d\n matches a URI which ends in a slash (\u201c/\u201d). The special method name\n \u201cdefault\u201d may match a portion of the path_info (but only when no longer\n@@ -111,15 +111,15 @@\n HTTP verbs.

\n

Note that the containing class must be exposed, not the methods.

\n
\n \n
\n
\n class cherrypy._cpdispatch.PageHandler(callable, *args, **kwargs)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

Callable which sets response.body.

\n
\n
\n property args\u00b6
\n

The ordered args should be accessible from post dispatch hooks.

\n
\n \n@@ -130,15 +130,15 @@\n
\n \n \n \n
\n
\n class cherrypy._cpdispatch.RoutesDispatcher(full_result=False, **mapper_options)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A Routes based dispatcher for CherryPy.

\n
\n
\n connect(name, route, controller, **kwargs)[source]\u00b6
\n
\n \n
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cperror.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cperror.html", "unified_diff": "@@ -162,15 +162,15 @@\n
\n

Note that you have to explicitly set\n response.body\n and not simply return an error message as a result.

\n
\n
\n exception cherrypy._cperror.CherryPyException[source]\u00b6
\n-

Bases: Exception

\n+

Bases: Exception

\n

A base class for CherryPy exceptions.

\n
\n \n
\n
\n exception cherrypy._cperror.HTTPError(status=500, message=None)[source]\u00b6
\n

Bases: cherrypy._cperror.CherryPyException

\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cplogging.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cplogging.html", "unified_diff": "@@ -32,15 +32,15 @@\n \n
\n \n
\n

cherrypy._cplogging module\u00b6

\n
\n

Simple config\u00b6

\n-

Although CherryPy uses the Python logging module, it does so\n+

Although CherryPy uses the Python logging module, it does so\n behind the scenes so that simple logging is simple, but complicated logging\n is still possible. \u201cSimple\u201d logging means that you can log to the screen\n (i.e. console/stdout) or to a file, and that you can easily have separate\n error and access log files.

\n

Here are the simplified logging settings. You use these by adding lines to\n your config file or dict. You should set these at either the global level or\n per application (see next), but generally not both.

\n@@ -94,15 +94,15 @@\n functionality, or they may create an application that is vulnerable to CWE-117.\n This would be achieved by using a custom handler escape any special characters,\n and attached as described below.

\n
\n
\n
\n

Custom Handlers\u00b6

\n-

The simple settings above work by manipulating Python\u2019s standard logging\n+

The simple settings above work by manipulating Python\u2019s standard logging\n module. So when you need something more complex, the full power of the standard\n module is yours to exploit. You can borrow or create custom handlers, formats,\n filters, and much more. Here\u2019s an example that skips the standard FileHandler\n and uses a RotatingFileHandler instead:

\n
#python\n log = app.log\n \n@@ -132,21 +132,21 @@\n Since \u201clog.*\u201d config entries simply set attributes on the log object, you can\n add custom attributes to your heart\u2019s content. Note that these handlers are\n used \u2018\u2019instead\u2019\u2019 of the default, simple handlers outlined above (so don\u2019t set\n the \u201clog.error_file\u201d config entry, for example).

\n
\n
\n class cherrypy._cplogging.LazyRfc3339UtcTime[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n
\n \n
\n
\n class cherrypy._cplogging.LogManager(appid=None, logger_root='cherrypy')[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

An object to assist both simple and advanced logging.

\n

cherrypy.log is an instance of this class.

\n
\n
\n _add_builtin_file_handler(log, fname)[source]\u00b6
\n
\n \n@@ -195,15 +195,15 @@\n

If you set this to a string, it\u2019ll add the appropriate FileHandler for\n you. If you set it to None or '', it will remove the handler.

\n
\n \n
\n
\n access_log = None\u00b6
\n-

The actual logging.Logger instance for access messages.

\n+

The actual logging.Logger instance for access messages.

\n
\n \n
\n
\n access_log_format = '{h} {l} {u} {t} "{r}" {s} {b} "{f}" "{a}"'\u00b6
\n
\n \n@@ -231,15 +231,15 @@\n

If you set this to a string, it\u2019ll add the appropriate FileHandler for\n you. If you set it to None or '', it will remove the handler.

\n
\n \n
\n
\n error_log = None\u00b6
\n-

The actual logging.Logger instance for error messages.

\n+

The actual logging.Logger instance for error messages.

\n
\n \n
\n
\n logger_root = None\u00b6
\n

The \u201ctop-level\u201d logger name.

\n

This string will be used as the first segment in the Logger names.\n@@ -282,15 +282,15 @@\n

\n \n \n \n
\n
\n class cherrypy._cplogging.NullHandler(level=0)[source]\u00b6
\n-

Bases: logging.Handler

\n+

Bases: logging.Handler

\n

A no-op logging handler to silence the logging.lastResort handler.

\n
\n
\n createLock()[source]\u00b6
\n

Acquire a thread lock for serializing access to the underlying I/O.

\n
\n \n@@ -313,15 +313,15 @@\n
\n \n \n \n
\n
\n class cherrypy._cplogging.WSGIErrorHandler(level=0)[source]\u00b6
\n-

Bases: logging.Handler

\n+

Bases: logging.Handler

\n

A handler class which writes logging records to environ[\u2018wsgi.errors\u2019].

\n
\n
\n emit(record)[source]\u00b6
\n

Emit a record.

\n
\n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpmodpy.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpmodpy.html", "unified_diff": "@@ -82,15 +82,15 @@\n your application can be found by from the user running\n the apache2 instance. Of course if your application\n resides in the global site-package this won\u2019t be needed.

\n

Then restart apache2 and access http://127.0.0.1:8080

\n
\n
\n class cherrypy._cpmodpy.ModPythonServer(loc='/', port=80, opts=None, apache_path='apache', handler='cherrypy._cpmodpy::handler')[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n
\n
\n start()[source]\u00b6
\n
\n \n
\n
\n@@ -103,15 +103,15 @@\n
\n \n
\n \n
\n
\n class cherrypy._cpmodpy._ReadOnlyRequest(req)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n
\n
\n expose = ('read', 'readline', 'readlines')\u00b6
\n
\n \n
\n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpreqbody.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpreqbody.html", "unified_diff": "@@ -132,15 +132,15 @@\n
\n
\n

Note that you can only replace the processors dict wholesale this way,\n not update the existing one.

\n
\n
\n class cherrypy._cpreqbody.Entity(fp, headers, params=None, parts=None)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

An HTTP request body, or MIME multipart body.

\n

This class collects information about the HTTP request entity. When a\n given entity is of MIME type \u201cmultipart\u201d, each part is parsed into its own\n Entity instance, and the set of parts stored in\n entity.parts.

\n

Between the before_request_body and before_handler tools, CherryPy\n tries to process the request body (if any) by calling\n@@ -392,15 +392,15 @@\n \n

\n
\n maxrambytes = 1000\u00b6
\n

The threshold of bytes after which point the Part will store\n its data in a file (generated by\n make_file)\n-instead of a string. Defaults to 1000, just like the cgi\n+instead of a string. Defaults to 1000, just like the cgi\n module in Python\u2019s standard library.

\n
\n \n
\n
\n classmethod read_headers(fp)[source]\u00b6
\n
\n@@ -462,15 +462,15 @@\n
\n \n \n \n
\n
\n class cherrypy._cpreqbody.SizedReader(fp, length, maxbytes, bufsize=8192, has_trailers=False)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n
\n
\n finish()[source]\u00b6
\n
\n \n
\n
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cprequest.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cprequest.html", "unified_diff": "@@ -33,15 +33,15 @@\n
\n \n
\n

cherrypy._cprequest module\u00b6

\n
\n
\n class cherrypy._cprequest.Hook(callback, failsafe=None, priority=None, **kwargs)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A callback and its metadata: failsafe, priority, and kwargs.

\n
\n
\n callback = None\u00b6
\n

The bare callable that this Hook object is wrapping, which will\n be called when the Hook is called.

\n
\n@@ -69,15 +69,15 @@\n
\n \n
\n \n
\n
\n class cherrypy._cprequest.HookMap(points=None)[source]\u00b6
\n-

Bases: dict

\n+

Bases: dict

\n

A map of call points to lists of callbacks (Hook objects).

\n
\n
\n attach(point, callback, failsafe=None, priority=None, **kwargs)[source]\u00b6
\n

Append a new Hook made from the supplied arguments.

\n
\n \n@@ -105,28 +105,28 @@\n
\n \n \n \n
\n
\n class cherrypy._cprequest.LazyUUID4[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n
\n
\n property uuid4\u00b6
\n

Provide unique id on per-request basis using UUID4.

\n

It\u2019s evaluated lazily on render.

\n
\n \n
\n \n
\n
\n class cherrypy._cprequest.Request(local_host, remote_host, scheme='http', server_protocol='HTTP/1.1')[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

An HTTP request.

\n

This object represents the metadata of an HTTP request message;\n that is, it contains attributes which describe the environment\n in which the request URL, headers, and body were sent (if you\n want tools to interpret the headers and body, those are elsewhere,\n mostly in Tools). This \u2018metadata\u2019 consists of socket data,\n transport characteristics, and the Request-Line. This object\n@@ -571,15 +571,15 @@\n

\n \n \n \n
\n
\n class cherrypy._cprequest.Response[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

An HTTP Response, including status, headers, and body.

\n
\n
\n _flush_body()[source]\u00b6
\n

Discard self.body but consume any generator such that\n any finalization can occur, such as is required by\n caching.tee_output().

\n@@ -651,15 +651,15 @@\n
\n \n
\n \n
\n
\n class cherrypy._cprequest.ResponseBody[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

The body of the HTTP response (the response entity).

\n
\n
\n unicode_err = 'Page handlers MUST return bytes. Use tools.encode if you wish to return unicode.'\u00b6
\n
\n \n
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptools.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptools.html", "unified_diff": "@@ -201,15 +201,15 @@\n \n \n \n \n
\n
\n class cherrypy._cptools.Tool(point, callable, name=None, priority=50)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A registered function for use with CherryPy request-processing hooks.

\n

help(tool.callable) should give you more information about this Tool.

\n
\n
\n _merged_args(d=None)[source]\u00b6
\n

Return a dict of configuration entries for this Tool.

\n
\n@@ -239,15 +239,15 @@\n
\n \n \n \n
\n
\n class cherrypy._cptools.Toolbox(namespace)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A collection of Tools.

\n

This object also functions as a config namespace handler for itself.\n Custom toolboxes should be added to each Application\u2019s toolboxes dict.

\n
\n
\n register(point, **kwargs)[source]\u00b6
\n

Return a decorator which registers the function\n@@ -255,15 +255,15 @@\n

\n \n
\n \n
\n
\n class cherrypy._cptools.XMLRPCController[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A Controller (page handler collection) for XML-RPC.

\n

To use it, have your controllers subclass this base class (it will\n turn on the tool for you).

\n

You can also supply the following optional config entries:

\n
tools.xmlrpc.encoding: 'utf-8'\n tools.xmlrpc.allow_none: 0\n 
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptree.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cptree.html", "unified_diff": "@@ -34,15 +34,15 @@\n \n
\n

cherrypy._cptree module\u00b6

\n

CherryPy Application and Tree objects.

\n
\n
\n class cherrypy._cptree.Application(root, script_name='', config=None)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A CherryPy Application.

\n

Servers and gateways should not instantiate Request objects directly.\n Instead, they should ask an Application object for a request object.

\n

An instance of this class may also be used as a WSGI callable\n (WSGI application object) for itself.

\n
\n
\n@@ -151,15 +151,15 @@\n
\n \n
\n \n
\n
\n class cherrypy._cptree.Tree[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A registry of CherryPy applications, mounted at diverse points.

\n

An instance of this class may also be used as a WSGI callable\n (WSGI application object), in which case it dispatches to all\n mounted apps.

\n
\n
\n apps = {}\u00b6
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpwsgi.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._cpwsgi.html", "unified_diff": "@@ -39,15 +39,15 @@\n whatever the type of \u201c\u201d is. For Python 2, that\u2019s a byte string; for Python 3,\n it\u2019s a unicode string. But PEP 3333 says: \u201ceven if Python\u2019s str type is\n actually Unicode \u201cunder the hood\u201d, the content of native strings must\n still be translatable to bytes via the Latin-1 encoding!\u201d

\n
\n
\n class cherrypy._cpwsgi.AppResponse(environ, start_response, cpapp)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

WSGI response iterable for CherryPy applications.

\n
\n
\n close()[source]\u00b6
\n

Close and de-reference the current request and response. (Core)

\n
\n \n@@ -74,15 +74,15 @@\n
\n \n
\n \n
\n
\n class cherrypy._cpwsgi.CPWSGIApp(cpapp, pipeline=None)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

A WSGI application object for a CherryPy Application.

\n
\n
\n config = {}\u00b6
\n

A dict whose keys match names listed in the pipeline. Each\n value is a further dict which will be passed to the corresponding\n named WSGI callable (from the pipeline) as keyword arguments.

\n@@ -128,29 +128,29 @@\n
\n \n
\n \n
\n
\n class cherrypy._cpwsgi.ExceptionTrapper(nextapp, throws=(<class 'KeyboardInterrupt'>, <class 'SystemExit'>))[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

WSGI middleware that traps exceptions.

\n
\n \n
\n
\n class cherrypy._cpwsgi.InternalRedirector(nextapp, recursive=False)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

WSGI middleware that handles raised cherrypy.InternalRedirect.

\n
\n \n
\n
\n class cherrypy._cpwsgi.VirtualHost(default, domains=None, use_x_forwarded_host=True)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

Select a different WSGI application based on the Host header.

\n

This can be useful when running multiple sites within one CP server.\n It allows several domains to point to different applications. For example:

\n
root = Root()\n RootApp = cherrypy.Application(root)\n Domain2App = cherrypy.Application(root)\n SecureApp = cherrypy.Application(Secure())\n@@ -197,15 +197,15 @@\n 
\n \n \n \n
\n
\n class cherrypy._cpwsgi._TrappedResponse(nextapp, environ, start_response, throws)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n
\n
\n close()[source]\u00b6
\n
\n \n
\n
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._helper.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy._helper.html", "unified_diff": "@@ -34,15 +34,15 @@\n \n
\n

cherrypy._helper module\u00b6

\n

Helper functions for CP apps.

\n
\n
\n class cherrypy._helper._ClassPropertyDescriptor(fget, fset=None)[source]\u00b6
\n-

Bases: object

\n+

Bases: object

\n

Descript for read-only class-based property.

\n

Turns a classmethod-decorated func into a read-only property of that class\n type (means the value cannot be set).

\n
\n \n
\n
\n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.html", "unified_diff": "@@ -313,15 +313,15 @@\n
  • WSGI API

  • \n \n
    \n

    These API\u2019s are described in the CherryPy specification.

    \n
    \n
    \n class cherrypy.Application(root, script_name='', config=None)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    A CherryPy Application.

    \n

    Servers and gateways should not instantiate Request objects directly.\n Instead, they should ask an Application object for a request object.

    \n

    An instance of this class may also be used as a WSGI callable\n (WSGI application object) for itself.

    \n
    \n
    \n@@ -430,15 +430,15 @@\n
    \n \n
    \n \n
    \n
    \n exception cherrypy.CherryPyException[source]\u00b6
    \n-

    Bases: Exception

    \n+

    Bases: Exception

    \n

    A base class for CherryPy exceptions.

    \n
    \n \n
    \n
    \n exception cherrypy.HTTPError(status=500, message=None)[source]\u00b6
    \n

    Bases: cherrypy._cperror.CherryPyException

    \n@@ -571,15 +571,15 @@\n

    This is equivalent to raising\n HTTPError("404 Not Found").

    \n
    \n \n
    \n
    \n class cherrypy.Tool(point, callable, name=None, priority=50)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    A registered function for use with CherryPy request-processing hooks.

    \n

    help(tool.callable) should give you more information about this Tool.

    \n
    \n
    \n _merged_args(d=None)[source]\u00b6
    \n

    Return a dict of configuration entries for this Tool.

    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.auth_digest.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.auth_digest.html", "unified_diff": "@@ -55,15 +55,15 @@\n cherrypy.lib.auth_digest.H(s)[source]\u00b6\n

    The hash function H

    \n
    \n \n
    \n
    \n class cherrypy.lib.auth_digest.HttpDigestAuthorization(auth_header, http_method, debug=False, accept_charset='UTF-8')[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Parses a Digest Authorization header and performs\n re-calculation of the digest.

    \n
    \n
    \n HA2(entity_body='')[source]\u00b6
    \n

    Returns the H(A2) string. See RFC 2617 section 3.2.2.3.

    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.caching.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.caching.html", "unified_diff": "@@ -59,15 +59,15 @@\n delete, and clear.

    \n

    You may set any attribute, including overriding methods, on the cache\n instance by providing them in config. The above sets the\n delay attribute, for example.

    \n
    \n
    \n class cherrypy.lib.caching.AntiStampedeCache[source]\u00b6
    \n-

    Bases: dict

    \n+

    Bases: dict

    \n

    A storage system for cached items which reduces stampede collisions.

    \n
    \n
    \n wait(key, timeout=5, debug=False)[source]\u00b6
    \n

    Return the cached value for the given key, or None.

    \n

    If timeout is not None, and the value is already\n being calculated by another thread, wait until the given timeout has\n@@ -78,15 +78,15 @@\n

    \n \n
    \n \n
    \n
    \n class cherrypy.lib.caching.Cache[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Base class for Cache implementations.

    \n
    \n
    \n clear()[source]\u00b6
    \n

    Reset the cache to its initial, empty state.

    \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.covercp.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.covercp.html", "unified_diff": "@@ -49,15 +49,15 @@\n effectively clears any coverage data gathered up to that point.

    \n

    Run your code, then use the covercp.serve() function to browse the\n results in a web browser. If you run this module from the command line,\n it will call serve() for you.

    \n
    \n
    \n class cherrypy.lib.covercp.CoverStats(coverage, root=None)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n annotated_file(filename, statements, excluded, missing)[source]\u00b6
    \n
    \n \n
    \n
    \n@@ -100,15 +100,15 @@\n
    \n cherrypy.lib.covercp.get_tree(base, exclude, coverage=None)[source]\u00b6
    \n

    Return covered module names as a nested dict.

    \n
    \n \n
    \n
    \n-cherrypy.lib.covercp.serve(path='/build/1st/cherrypy3-18.6.1/cherrypy/lib/coverage.cache', port=8080, root=None)[source]\u00b6
    \n+cherrypy.lib.covercp.serve(path='/build/2/cherrypy3-18.6.1/2nd/cherrypy/lib/coverage.cache', port=8080, root=None)[source]\u00b6\n
    \n \n
    \n
    \n cherrypy.lib.covercp.start()[source]\u00b6
    \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cpstats.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cpstats.html", "unified_diff": "@@ -42,19 +42,19 @@\n usually ad-hoc. This package aims to add a centralized place for gathering\n statistical performance data, a structure for recording that data which\n provides for extrapolation of that data into more useful information,\n and a method of serving that data to both human investigators and\n monitoring software. Let\u2019s examine each of those in more detail.

    \n
    \n

    Data Gathering\u00b6

    \n-

    Just as Python\u2019s logging module provides a common importable for gathering\n+

    Just as Python\u2019s logging module provides a common importable for gathering\n and sending messages, performance statistics would benefit from a similar\n common mechanism, and one that does not require each package which wishes\n to collect stats to import a third-party module. Therefore, we choose to\n-re-use the logging module by adding a statistics object to it.

    \n+re-use the logging module by adding a statistics object to it.

    \n

    That logging.statistics object is a nested dict. It is not a custom class,\n because that would:

    \n
    \n
      \n
    1. require libraries and applications to import a third-party module in\n order to participate

    2. \n
    3. inhibit innovation in extrapolation approaches and in reporting tools, and

    4. \n@@ -205,15 +205,15 @@\n

      To format statistics reports:

      \n
      See 'Reporting', above.\n 
      \n
      \n
      \n
      \n class cherrypy.lib.cpstats.ByteCountWrapper(rfile)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      Wraps a file-like object, counting the number of bytes read.

      \n
      \n
      \n close()[source]\u00b6
      \n
      \n \n
      \n@@ -237,15 +237,15 @@\n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.cpstats.StatsPage[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n
      \n
      \n data()[source]\u00b6
      \n
      \n \n
      \n
      \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cptools.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.cptools.html", "unified_diff": "@@ -45,15 +45,15 @@\n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.cptools.SessionAuth[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      Assert that the user is logged in.

      \n
      \n
      \n _debug_message(template, context={})[source]\u00b6
      \n
      \n \n
      \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.encoding.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.encoding.html", "unified_diff": "@@ -33,15 +33,15 @@\n
      \n \n
      \n

      cherrypy.lib.encoding module\u00b6

      \n
      \n
      \n class cherrypy.lib.encoding.ResponseEncoder(**kwargs)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n
      \n
      \n add_charset = True\u00b6
      \n
      \n \n
      \n
      \n@@ -93,15 +93,15 @@\n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.encoding.UTF8StreamEncoder(iterator)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n
      \n
      \n close()[source]\u00b6
      \n
      \n \n
      \n
      \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.gctools.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.gctools.html", "unified_diff": "@@ -33,15 +33,15 @@\n
      \n \n
      \n

      cherrypy.lib.gctools module\u00b6

      \n
      \n
      \n class cherrypy.lib.gctools.GCRoot[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      A CherryPy page handler for testing reference leaks.

      \n
      \n
      \n classes = [(<class 'cherrypy._cprequest.Request'>, 2, 2, 'Should be 1 in this request thread and 1 in the main thread.'), (<class 'cherrypy._cprequest.Response'>, 2, 2, 'Should be 1 in this request thread and 1 in the main thread.'), (<class 'cherrypy._cpwsgi.AppResponse'>, 1, 1, 'Should be 1 in this request thread only.')]\u00b6
      \n
      \n \n
      \n@@ -55,15 +55,15 @@\n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.gctools.ReferrerTree(ignore=None, maxdepth=2, maxparents=10)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      An object which gathers all referrers of an object to a given depth.

      \n
      \n
      \n _format(obj, descend=True)[source]\u00b6
      \n

      Return a string representation of a single object.

      \n
      \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.html", "unified_diff": "@@ -87,15 +87,15 @@\n
      \n
      \n

      Module contents\u00b6

      \n

      CherryPy Library.

      \n
      \n
      \n class cherrypy.lib.file_generator(input, chunkSize=65536)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      Yield the given input (a file object) in chunks (default 64k).

      \n

      (Core)

      \n
      \n
      \n next()\u00b6
      \n

      Return next chunk of file.

      \n
      \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.httputil.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.httputil.html", "unified_diff": "@@ -76,15 +76,15 @@\n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.httputil.HeaderElement(value, params=None)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      An element (with parameters) from an HTTP header\u2019s element list.

      \n
      \n
      \n classmethod from_str(elementstr)[source]\u00b6
      \n

      Construct an instance from a string of the form \u2018token;key=val\u2019.

      \n
      \n \n@@ -156,15 +156,15 @@\n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.httputil.Host(ip, port, name=None)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      An internet address.

      \n
      \n
      name

      Should be the client\u2019s host name. If not available (because no DNS\n lookup is performed), the IP address should be used instead.

      \n
      \n
      \n
      \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.locking.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.locking.html", "unified_diff": "@@ -33,45 +33,45 @@\n
      \n \n
      \n

      cherrypy.lib.locking module\u00b6

      \n
      \n
      \n class cherrypy.lib.locking.LockChecker(session_id, timeout)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      Keep track of the time and detect if a timeout has expired

      \n
      \n
      \n expired()[source]\u00b6
      \n
      \n \n
      \n \n
      \n
      \n exception cherrypy.lib.locking.LockTimeout[source]\u00b6
      \n-

      Bases: Exception

      \n+

      Bases: Exception

      \n

      An exception when a lock could not be acquired before a timeout period

      \n
      \n \n
      \n
      \n class cherrypy.lib.locking.NeverExpires[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n
      \n
      \n expired()[source]\u00b6
      \n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.locking.Timer(expiration)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n

      A simple timer that will indicate when an expiration time has passed.

      \n
      \n
      \n classmethod after(elapsed)[source]\u00b6
      \n

      Return a timer that will expire after elapsed passes.

      \n
      \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.profiler.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.profiler.html", "unified_diff": "@@ -74,15 +74,15 @@\n
      \n \n
      \n \n
      \n
      \n class cherrypy.lib.profiler.Profiler(path=None)[source]\u00b6
      \n-

      Bases: object

      \n+

      Bases: object

      \n
      \n
      \n index()[source]\u00b6
      \n
      \n \n
      \n
      \n@@ -121,15 +121,15 @@\n
      \n \n
    \n \n
    \n
    \n class cherrypy.lib.profiler.make_app(nextapp, path=None, aggregate=False)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n \n
    \n
    \n cherrypy.lib.profiler.new_func_strip_path(func_name)[source]\u00b6
    \n

    Make profiler output more readable by adding __init__ modules\u2019 parents

    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.reprconf.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.reprconf.html", "unified_diff": "@@ -46,15 +46,15 @@\n the Config.environments dict.

    \n

    You can define your own namespaces to be called when new config is merged\n by adding a named handler to Config.namespaces. The name can be any string,\n and the handler must be either a callable or a context manager.

    \n
    \n
    \n class cherrypy.lib.reprconf.Config(file=None, **kwargs)[source]\u00b6
    \n-

    Bases: dict

    \n+

    Bases: dict

    \n

    A dict-like set of configuration data, with defaults and namespaces.

    \n

    May take a file, filename, or dict.

    \n
    \n
    \n _apply(config)[source]\u00b6
    \n

    Update self from a dict.

    \n
    \n@@ -87,15 +87,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.lib.reprconf.NamespaceSet[source]\u00b6
    \n-

    Bases: dict

    \n+

    Bases: dict

    \n

    A dict of config namespace names and handlers.

    \n

    Each config entry should begin with a namespace name; the corresponding\n namespace handler will be called once for each config entry in that\n namespace, and will be passed two arguments: the config key (with the\n namespace removed) and the config value.

    \n

    Namespace handlers may be any Python callable; they may also be\n context managers, in which case their __enter__\n@@ -107,15 +107,15 @@\n

    \n \n
    \n \n
    \n
    \n class cherrypy.lib.reprconf.Parser(defaults=None, dict_type=<class 'dict'>, allow_no_value=False, *, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section='DEFAULT', interpolation=<object object>, converters=<object object>)[source]\u00b6
    \n-

    Bases: configparser.ConfigParser

    \n+

    Bases: configparser.ConfigParser

    \n

    Sub-class of ConfigParser that keeps the case of options and that\n raises an exception if the file cannot be read.

    \n
    \n
    \n _abc_impl = <_abc._abc_data object>\u00b6
    \n
    \n \n@@ -155,15 +155,15 @@\n
    \n \n \n \n
    \n
    \n class cherrypy.lib.reprconf._Builder[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n _build_call35(o)[source]\u00b6
    \n

    Workaround for python 3.5 _ast.Call signature, docs found here\n https://greentreesnakes.readthedocs.org/en/latest/nodes.html

    \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.sessions.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.lib.sessions.html", "unified_diff": "@@ -314,15 +314,15 @@\n
    \n \n \n \n
    \n
    \n class cherrypy.lib.sessions.Session(id=None, **kwargs)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    A CherryPy dict-like Session object (one per request).

    \n
    \n
    \n _id = None\u00b6
    \n
    \n \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.plugins.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.plugins.html", "unified_diff": "@@ -36,15 +36,15 @@\n

    cherrypy.process.plugins module\u00b6

    \n

    Site services for use with a Web Site Process Bus.

    \n
    \n
    \n class cherrypy.process.plugins.Autoreloader(bus, frequency=1, match='.*')[source]\u00b6
    \n

    Bases: cherrypy.process.plugins.Monitor

    \n

    Monitor which re-executes the process when files change.

    \n-

    This plugin restarts the process (via os.execv())\n+

    This plugin restarts the process (via os.execv())\n if any of the files it monitors change (or is deleted). By default, the\n autoreloader monitors all imported modules; you can add to the\n set by adding to autoreload.files:

    \n
    cherrypy.engine.autoreload.files.add(myFile)\n 
    \n
    \n

    If there are imported files you do not wish to monitor, you can\n@@ -117,15 +117,15 @@\n

    \n \n
    \n \n
    \n
    \n class cherrypy.process.plugins.BackgroundTask(interval, function, args=[], kwargs={}, bus=None)[source]\u00b6
    \n-

    Bases: threading.Thread

    \n+

    Bases: threading.Thread

    \n

    A subclass of threading.Thread whose run() method repeats.

    \n

    Use this class for most repeating tasks. It uses time.sleep() to wait\n for each interval, which isn\u2019t very responsive; that is, even if you call\n self.cancel(), you\u2019ll have to wait until the sleep() call finishes before\n the thread stops. To compensate, it defaults to being daemonic, which means\n it won\u2019t delay stopping the whole process.

    \n
    \n@@ -277,15 +277,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.process.plugins.PerpetualTimer(*args, **kwargs)[source]\u00b6
    \n-

    Bases: threading.Timer

    \n+

    Bases: threading.Timer

    \n

    A responsive subclass of threading.Timer whose run() method repeats.

    \n

    Use this timer only when you really need a very interruptible timer;\n this checks its \u2018finished\u2019 condition up to 20 times a second, which can\n results in pretty high CPU usage

    \n
    \n
    \n run()[source]\u00b6
    \n@@ -297,15 +297,15 @@\n
    \n \n \n \n
    \n
    \n class cherrypy.process.plugins.SignalHandler(bus)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Register bus channels (and listeners) for system signals.

    \n

    You can modify what signals your application listens for, and what it does\n when it receives signals, by modifying SignalHandler.handlers,\n a dict of {signal name: callback} pairs. The default set is:

    \n
    handlers = {'SIGTERM': self.bus.exit,\n             'SIGHUP': self.handle_SIGHUP,\n             'SIGUSR1': self.bus.graceful,\n@@ -387,15 +387,15 @@\n 
    \n \n \n \n
    \n
    \n class cherrypy.process.plugins.SimplePlugin(bus)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Plugin base class which auto-subscribes methods for known channels.

    \n
    \n
    \n bus = None\u00b6
    \n

    A Bus, usually cherrypy.engine.

    \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.servers.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.servers.html", "unified_diff": "@@ -31,15 +31,15 @@\n \n \n
    \n \n
    \n

    cherrypy.process.servers module\u00b6

    \n

    Starting in CherryPy 3.1, cherrypy.server is implemented as an\n-Engine Plugin. It\u2019s an instance of\n+Engine Plugin. It\u2019s an instance of\n cherrypy._cpserver.Server, which is a subclass of\n cherrypy.process.servers.ServerAdapter. The ServerAdapter class\n is designed to control other servers, as well.

    \n
    \n

    Multiple servers/ports\u00b6

    \n

    If you need to start more than one HTTP server (to serve on multiple ports, or\n protocols, etc.), you can manually register each one and then start them all\n@@ -137,15 +137,15 @@\n

    \n
    \n

    Please see Lighttpd FastCGI Docs for\n an explanation of the possible configuration options.

    \n
    \n
    \n class cherrypy.process.servers.FlupCGIServer(*args, **kwargs)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Adapter for a flup.server.cgi.WSGIServer.

    \n
    \n
    \n start()[source]\u00b6
    \n

    Start the CGI server.

    \n
    \n \n@@ -156,15 +156,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.process.servers.FlupFCGIServer(*args, **kwargs)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Adapter for a flup.server.fcgi.WSGIServer.

    \n
    \n
    \n start()[source]\u00b6
    \n

    Start the FCGI server.

    \n
    \n \n@@ -175,15 +175,15 @@\n
    \n \n \n \n
    \n
    \n class cherrypy.process.servers.FlupSCGIServer(*args, **kwargs)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Adapter for a flup.server.scgi.WSGIServer.

    \n
    \n
    \n start()[source]\u00b6
    \n

    Start the SCGI server.

    \n
    \n \n@@ -194,15 +194,15 @@\n
    \n \n \n \n
    \n
    \n class cherrypy.process.servers.ServerAdapter(bus, httpserver=None, bind_addr=None)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Adapter for an HTTP server.

    \n

    If you need to start more than one HTTP server (to serve on multiple\n ports, or protocols, etc.), you can manually register each one and then\n start them all with bus.start:

    \n
    s1 = ServerAdapter(bus, MyWSGIServer(host='0.0.0.0', port=80))\n s2 = ServerAdapter(bus, another.HTTPServer(host='127.0.0.1', SSL=True))\n s1.subscribe()\n@@ -273,15 +273,15 @@\n 
    \n \n \n \n
    \n
    \n class cherrypy.process.servers.Timeouts[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n free = 1\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.win32.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.win32.html", "unified_diff": "@@ -84,15 +84,15 @@\n
    \n \n \n \n
    \n
    \n class cherrypy.process.win32._ControlCodes[source]\u00b6
    \n-

    Bases: dict

    \n+

    Bases: dict

    \n

    Control codes used to \u201csignal\u201d a service via ControlService.

    \n

    User-defined control codes are in the range 128-255. We generally use\n the standard Python value for the Linux signal and add 128. Example:

    \n
    >>> signal.SIGUSR1\n 10\n control_codes['graceful'] = 128 + 10\n 
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.wspbus.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.process.wspbus.html", "unified_diff": "@@ -88,15 +88,15 @@\n | V V\n STARTED <-- STARTING\n
    \n
    \n
    \n
    \n class cherrypy.process.wspbus.Bus[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Process state-machine and messenger for HTTP site deployment.

    \n

    All listeners for a given channel are guaranteed to be called even\n if others at the same channel fail. Each failure is logged, but\n execution proceeds on to the next listener. The only way to stop all\n processing from inside a listener is to raise SystemExit and stop the\n whole server.

    \n
    \n@@ -276,15 +276,15 @@\n
    \n \n \n \n
    \n
    \n exception cherrypy.process.wspbus.ChannelFailures(*args, **kwargs)[source]\u00b6
    \n-

    Bases: Exception

    \n+

    Bases: Exception

    \n

    Exception raised during errors on Bus.publish().

    \n
    \n
    \n delimiter = '\\n'\u00b6
    \n
    \n \n
    \n@@ -300,19 +300,19 @@\n
    \n \n \n \n
    \n
    \n class cherrypy.process.wspbus._StateEnum[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n class State[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n name = None\u00b6
    \n
    \n \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.scaffold.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.scaffold.html", "unified_diff": "@@ -45,15 +45,15 @@\n Change to this directory and run:

    \n
    \n

    cherryd -c site.conf

    \n
    \n
    \n
    \n class cherrypy.scaffold.Root[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Declaration of the CherryPy app URI structure.

    \n
    \n
    \n _cp_config = {'tools.log_tracebacks.on': True}\u00b6
    \n
    \n \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_decorators.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_decorators.html", "unified_diff": "@@ -34,15 +34,15 @@\n \n
    \n

    cherrypy.test._test_decorators module\u00b6

    \n

    Test module for the @-decorator syntax, which is version-specific

    \n
    \n
    \n class cherrypy.test._test_decorators.ExposeExamples[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n alias1()\u00b6
    \n
    \n \n
    \n
    \n@@ -85,15 +85,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.test._test_decorators.ToolExamples[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n blah()[source]\u00b6
    \n
    \n \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_states_demo.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test._test_states_demo.html", "unified_diff": "@@ -33,15 +33,15 @@\n
    \n \n
    \n

    cherrypy.test._test_states_demo module\u00b6

    \n
    \n
    \n class cherrypy.test._test_states_demo.Root[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n exit()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.benchmark.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.benchmark.html", "unified_diff": "@@ -54,15 +54,15 @@\n

    To run the modpython tests, the \u201capache\u201d executable or script must be\n on your system path, or provided via the \u2013apache=path option. On some\n platforms, \u201capache\u201d may be called \u201capachectl\u201d or \u201capache2ctl\u201d\u2013create\n a symlink to them if needed.

    \n
    \n
    \n class cherrypy.test.benchmark.ABSession(path='/cpbench/users/rdelon/apps/blog/hello', requests=1000, concurrency=10)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    A session of \u2018ab\u2019, the Apache HTTP server benchmarking tool.

    \n

    Example output from ab:

    \n

    This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.1 $> apache-2.0\n Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\n Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

    \n

    Benchmarking 127.0.0.1 (be patient)\n Completed 100 requests\n@@ -129,15 +129,15 @@\n

    \n \n
    \n \n
    \n
    \n class cherrypy.test.benchmark.Root[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n hello()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.checkerdemo.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.checkerdemo.html", "unified_diff": "@@ -37,15 +37,15 @@\n

    Demonstration app for cherrypy.checker.

    \n

    This application is intentionally broken and badly designed.\n To demonstrate the output of the CherryPy Checker, simply execute\n this module.

    \n
    \n
    \n class cherrypy.test.checkerdemo.Root[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n \n
    \n \n \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.helper.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.helper.html", "unified_diff": "@@ -34,38 +34,38 @@\n \n
    \n

    cherrypy.test.helper module\u00b6

    \n

    A library of helper functions for the CherryPy test suite.

    \n
    \n
    \n class cherrypy.test.helper.CPProcess(wait=False, daemonize=False, ssl=False, socket_host=None, socket_port=None)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n _join_daemon()[source]\u00b6
    \n
    \n \n
    \n
    \n-access_log = '/build/1st/cherrypy3-18.6.1/cherrypy/test/test.access.log'\u00b6
    \n+access_log = '/build/2/cherrypy3-18.6.1/2nd/cherrypy/test/test.access.log'\u00b6\n
    \n \n
    \n
    \n-config_file = '/build/1st/cherrypy3-18.6.1/cherrypy/test/test.conf'\u00b6
    \n+config_file = '/build/2/cherrypy3-18.6.1/2nd/cherrypy/test/test.conf'\u00b6\n
    \n \n
    \n
    \n config_template = "[global]\\nserver.socket_host: '%(host)s'\\nserver.socket_port: %(port)s\\nchecker.on: False\\nlog.screen: False\\nlog.error_file: r'%(error_log)s'\\nlog.access_file: r'%(access_log)s'\\n%(ssl)s\\n%(extra)s\\n"\u00b6
    \n
    \n \n
    \n
    \n-error_log = '/build/1st/cherrypy3-18.6.1/cherrypy/test/test.error.log'\u00b6
    \n+error_log = '/build/2/cherrypy3-18.6.1/2nd/cherrypy/test/test.error.log'\u00b6\n
    \n \n
    \n
    \n get_pid()[source]\u00b6
    \n
    \n \n@@ -73,15 +73,15 @@\n
    \n join()[source]\u00b6
    \n

    Wait for the process to exit.

    \n
    \n \n
    \n
    \n-pid_file = '/build/1st/cherrypy3-18.6.1/cherrypy/test/test.pid'\u00b6
    \n+pid_file = '/build/2/cherrypy3-18.6.1/2nd/cherrypy/test/test.pid'\u00b6\n
    \n \n
    \n
    \n start(imports=None)[source]\u00b6
    \n

    Start cherryd in a subprocess.

    \n
    \n@@ -283,15 +283,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.test.helper.Supervisor(**kwargs)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Base class for modeling and controlling servers during testing.

    \n
    \n \n
    \n
    \n cherrypy.test.helper._test_method_sorter(_, x, y)[source]\u00b6
    \n

    Monkeypatch the test sorter to always run test_gc last in each suite.

    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.logtest.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.logtest.html", "unified_diff": "@@ -34,15 +34,15 @@\n \n
    \n

    cherrypy.test.logtest module\u00b6

    \n

    logtest, a unittest.TestCase helper for testing log output.

    \n
    \n
    \n class cherrypy.test.logtest.LogCase[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    unittest.TestCase mixin for testing log messages.

    \n
    \n
    logfile: a filename for the desired log. Yes, I know modes are evil,

    but it makes the test functions so much cleaner to set this once.

    \n
    \n
    lastmarker: the last marker in the log. This can be used to search for

    messages since the last marker.

    \n
    \n
    markerPrefix: a string with which to prefix log markers. This should be

    unique enough from normal log output to use for marker identification.

    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.sessiondemo.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.sessiondemo.html", "unified_diff": "@@ -34,15 +34,15 @@\n \n
    \n

    cherrypy.test.sessiondemo module\u00b6

    \n

    A session demonstration app.

    \n
    \n
    \n class cherrypy.test.sessiondemo.Root[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n expire()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_core.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_core.html", "unified_diff": "@@ -152,15 +152,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.test.test_core.TestBinding[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n test_bind_ephemeral_port()[source]\u00b6
    \n

    A server configured to bind to port 0 will bind to an ephemeral\n port and indicate that port number on startup.

    \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_iterator.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_iterator.html", "unified_diff": "@@ -33,15 +33,15 @@\n
    \n \n
    \n

    cherrypy.test.test_iterator module\u00b6

    \n
    \n
    \n class cherrypy.test.test_iterator.IteratorBase[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n created = 0\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_plugins.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_plugins.html", "unified_diff": "@@ -33,15 +33,15 @@\n
    \n \n
    \n

    cherrypy.test.test_plugins module\u00b6

    \n
    \n
    \n class cherrypy.test.test_plugins.TestAutoreloader[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n test_file_for_file_module_when_None()[source]\u00b6
    \n

    No error when module.__file__ is None.

    \n
    \n \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_states.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_states.html", "unified_diff": "@@ -33,15 +33,15 @@\n
    \n \n
    \n

    cherrypy.test.test_states module\u00b6

    \n
    \n
    \n class cherrypy.test.test_states.Dependency(bus)[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n graceful()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_tools.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_tools.html", "unified_diff": "@@ -48,15 +48,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.test.test_tools.TestHooks[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n test_priorities()[source]\u00b6
    \n

    Hooks should sort by priority order.

    \n
    \n \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_wsgi_unix_socket.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.test.test_wsgi_unix_socket.html", "unified_diff": "@@ -33,15 +33,15 @@\n
    \n \n
    \n

    cherrypy.test.test_wsgi_unix_socket module\u00b6

    \n
    \n
    \n class cherrypy.test.test_wsgi_unix_socket.USocketHTTPConnection(path)[source]\u00b6
    \n-

    Bases: http.client.HTTPConnection

    \n+

    Bases: http.client.HTTPConnection

    \n

    HTTPConnection over a unix socket.

    \n
    \n
    \n connect()[source]\u00b6
    \n

    Override the connect method and assign a unix socket as a transport.

    \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut01_helloworld.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut01_helloworld.html", "unified_diff": "@@ -35,15 +35,15 @@\n
    \n

    cherrypy.tutorial.tut01_helloworld module\u00b6

    \n

    Tutorial - Hello World

    \n

    The most basic (working) CherryPy application possible.

    \n
    \n
    \n class cherrypy.tutorial.tut01_helloworld.HelloWorld[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n

    Sample request handler class.

    \n
    \n
    \n index()[source]\u00b6
    \n
    \n \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut02_expose_methods.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut02_expose_methods.html", "unified_diff": "@@ -36,15 +36,15 @@\n

    cherrypy.tutorial.tut02_expose_methods module\u00b6

    \n

    Tutorial - Multiple methods

    \n

    This tutorial shows you how to link to other methods of your request\n handler.

    \n
    \n
    \n class cherrypy.tutorial.tut02_expose_methods.HelloWorld[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n index()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut03_get_and_post.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut03_get_and_post.html", "unified_diff": "@@ -35,15 +35,15 @@\n
    \n

    cherrypy.tutorial.tut03_get_and_post module\u00b6

    \n

    Tutorial - Passing variables

    \n

    This tutorial shows you how to pass GET/POST variables to methods.

    \n
    \n
    \n class cherrypy.tutorial.tut03_get_and_post.WelcomePage[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n greetUser(name=None)[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut04_complex_site.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut04_complex_site.html", "unified_diff": "@@ -36,48 +36,48 @@\n

    cherrypy.tutorial.tut04_complex_site module\u00b6

    \n

    Tutorial - Multiple objects

    \n

    This tutorial shows you how to create a site structure through multiple\n possibly nested request handler objects.

    \n
    \n
    \n class cherrypy.tutorial.tut04_complex_site.ExtraLinksPage[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n index()[source]\u00b6
    \n
    \n \n
    \n \n
    \n
    \n class cherrypy.tutorial.tut04_complex_site.HomePage[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n index()[source]\u00b6
    \n
    \n \n
    \n \n
    \n
    \n class cherrypy.tutorial.tut04_complex_site.JokePage[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n index()[source]\u00b6
    \n
    \n \n
    \n \n
    \n
    \n class cherrypy.tutorial.tut04_complex_site.LinksPage[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n index()[source]\u00b6
    \n
    \n \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut05_derived_objects.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut05_derived_objects.html", "unified_diff": "@@ -70,15 +70,15 @@\n
    \n \n
    \n \n
    \n
    \n class cherrypy.tutorial.tut05_derived_objects.Page[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n footer()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut06_default_method.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut06_default_method.html", "unified_diff": "@@ -45,15 +45,15 @@\n cherrypy.request.virtualPath.

    \n

    The application in this tutorial simulates an URI structure looking\n like /users/<username>. Since the <username> bit will not be found (as\n there are no matching methods), it is handled by the default method.

    \n
    \n
    \n class cherrypy.tutorial.tut06_default_method.UsersPage[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n default(user)[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut07_sessions.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut07_sessions.html", "unified_diff": "@@ -39,15 +39,15 @@\n provides a dictionary called \u201csession\u201d that represents the session\n data for the current user. If you use RAM based sessions, you can store\n any kind of object into that dictionary; otherwise, you are limited to\n objects that can be pickled.

    \n
    \n
    \n class cherrypy.tutorial.tut07_sessions.HitCounter[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n _cp_config = {'tools.sessions.on': True}\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut08_generators_and_yield.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut08_generators_and_yield.html", "unified_diff": "@@ -38,15 +38,15 @@\n

    Instead of returning a complete result string, you can use the yield\n statement to return one result part after another. This may be convenient\n in situations where using a template package like CherryPy or Cheetah\n would be overkill, and messy string concatenation too uncool. ;-)

    \n
    \n
    \n class cherrypy.tutorial.tut08_generators_and_yield.GeneratorDemo[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n footer()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut09_files.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut09_files.html", "unified_diff": "@@ -63,15 +63,15 @@\n may choke if the file extension is not recognized as belonging to a known\n Content-Type. Setting the content_type to \u201capplication/x-download\u201d works\n in most cases, and should prompt the user with an Open/Save dialog in\n popular browsers.

    \n
    \n
    \n class cherrypy.tutorial.tut09_files.FileDemo[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n download()[source]\u00b6
    \n
    \n \n
    \n
    \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut10_http_errors.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/pkg/cherrypy.tutorial.tut10_http_errors.html", "unified_diff": "@@ -37,18 +37,18 @@\n

    Tutorial: HTTP errors

    \n

    HTTPError is used to return an error response to the client.\n CherryPy has lots of options regarding how such errors are\n logged, displayed, and formatted.

    \n
    \n
    \n class cherrypy.tutorial.tut10_http_errors.HTTPErrorDemo[source]\u00b6
    \n-

    Bases: object

    \n+

    Bases: object

    \n
    \n
    \n-_cp_config = {'error_page.403': '/build/1st/cherrypy3-18.6.1/cherrypy/tutorial/custom_error.html'}\u00b6
    \n+_cp_config = {'error_page.403': '/build/2/cherrypy3-18.6.1/2nd/cherrypy/tutorial/custom_error.html'}\u00b6
    \n
    \n \n
    \n
    \n error(code)[source]\u00b6
    \n
    \n \n"}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/searchindex.js", "source2": "./usr/share/doc/python-cherrypy3-doc/html/searchindex.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -2373,15 +2373,14 @@\n \"189000\": 59,\n \"1920\": 9,\n \"1952\": 9,\n \"1996\": 59,\n \"1998\": 59,\n \"1beta\": 59,\n \"1d41828\": 9,\n- \"1st\": [37, 61, 117],\n \"200\": [0, 2, 4, 19, 24, 26, 59, 120],\n \"2002\": 59,\n \"2009\": [13, 30],\n \"2013\": 120,\n \"2014\": [7, 11, 120],\n \"204\": 66,\n \"2047\": [24, 42],\n@@ -2394,14 +2393,15 @@\n \"249\": 0,\n \"255\": 53,\n \"257\": 9,\n \"2616\": [39, 120],\n \"2617\": [1, 34, 35],\n \"28338254\": 54,\n \"28414807\": 54,\n+ \"2nd\": [37, 61, 117],\n \"300\": [19, 59],\n \"301\": [13, 19],\n \"302\": [13, 19],\n \"303\": [13, 19],\n \"304\": [9, 19, 36, 39, 63, 64, 65, 66],\n \"305\": 19,\n \"307\": [13, 19],\n"}]}, {"source1": "./usr/share/doc/python-cherrypy3-doc/html/tutorials.html", "source2": "./usr/share/doc/python-cherrypy3-doc/html/tutorials.html", "unified_diff": "@@ -121,15 +121,15 @@\n \n [24/Feb/2014:21:01:46] ENGINE Started monitor thread 'Autoreloader'.\n [24/Feb/2014:21:01:46] ENGINE Serving on http://127.0.0.1:8080\n [24/Feb/2014:21:01:46] ENGINE Bus STARTED\n
    \n
    \n

    This tells you several things. The first three lines indicate\n-the server will handle signal for you. The next line tells you\n+the server will handle signal for you. The next line tells you\n the current state of the server, as that\n point it is in STARTING stage. Then, you are notified your\n application has no specific configuration set to it.\n Next, the server starts a couple of internal utilities that\n we will explain later. Finally, the server indicates it is now\n ready to accept incoming communications as it listens on\n the address 127.0.0.1:8080. In other words, at that stage your\n"}]}]}]}]}