Warning: Permanently added '98.80.126.222' (ED25519) to the list of known hosts. You can reproduce this build on your computer by running: sudo dnf install copr-rpmbuild /usr/bin/copr-rpmbuild --verbose --drop-resultdir --task-url https://copr.fedorainfracloud.org/backend/get-build-task/9761547-fedora-rawhide-x86_64 --chroot fedora-rawhide-x86_64 Version: 1.6 PID: 8645 Logging PID: 8647 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'build_id': 9761547, 'buildroot_pkgs': [], 'chroot': 'fedora-rawhide-x86_64', 'enable_net': False, 'fedora_review': False, 'git_hash': '2ff8f66d9b0cee3f2ce097320f17df373bc7c8b1', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/@python/python-in-pulp/python-cheroot', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'python-cheroot', 'package_version': '11.1.0-1', 'project_dirname': 'python-in-pulp', 'project_name': 'python-in-pulp', 'project_owner': '@python', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/@python/python-in-pulp/fedora-rawhide-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None}], 'sandbox': '@python/python-in-pulp--https://src.fedoraproject.org/user/radez', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'storage': 1, 'submitter': 'https://src.fedoraproject.org/user/radez', 'tags': [], 'task_id': '9761547-fedora-rawhide-x86_64', 'timeout': 18000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/@python/python-in-pulp/python-cheroot /var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/@python/python-in-pulp/python-cheroot', '/var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot'... Running: git checkout 2ff8f66d9b0cee3f2ce097320f17df373bc7c8b1 -- cmd: ['git', 'checkout', '2ff8f66d9b0cee3f2ce097320f17df373bc7c8b1', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot rc: 0 stdout: stderr: Note: switching to '2ff8f66d9b0cee3f2ce097320f17df373bc7c8b1'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 2ff8f66 automatic import of python-cheroot Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot rc: 0 stdout: stderr: INFO: Reading stdout from command: git rev-parse --abbrev-ref HEAD INFO: Reading stdout from command: git rev-parse HEAD INFO: Reading sources specification file: sources INFO: Downloading cheroot-11.1.0.tar.gz INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -o cheroot-11.1.0.tar.gz --location --connect-timeout 60 --retry 3 --retry-delay 10 --remote-time --show-error --fail --retry-all-errors https://copr-dist-git.fedorainfracloud.org/repo/pkgs/@python/python-in-pulp/python-cheroot/cheroot-11.1.0.tar.gz/md5/4778b03a0733f36b78927b6657fa77f3/cheroot-11.1.0.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 180k 100 180k 0 0 13.0M 0 --:--:-- --:--:-- --:--:-- 13.5M INFO: Reading stdout from command: md5sum cheroot-11.1.0.tar.gz tail: /var/lib/copr-rpmbuild/main.log: file truncated Running (timeout=18000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot/python-cheroot.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1762193922.659918 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 6.5 starting (python version = 3.13.7, NVR = mock-6.5-1.fc42), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot/python-cheroot.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1762193922.659918 -r /var/lib/copr-rpmbuild/results/configs/child.cfg Start(bootstrap): init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish(bootstrap): init plugins Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot/python-cheroot.spec) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 6.5 INFO: Mock Version: 6.5 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1762193922.659918/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata INFO: Guessed host environment type: unknown INFO: Using container image: registry.fedoraproject.org/fedora:rawhide INFO: Pulling image: registry.fedoraproject.org/fedora:rawhide INFO: Tagging container image as mock-bootstrap-bc3dd73b-5b41-4c7c-a135-cdf76568cf0a INFO: Checking that 3335951aaec4c584683d4843ebaab1bea32b867580f8daa27b20b45dde85976a image matches host's architecture INFO: Copy content of container 3335951aaec4c584683d4843ebaab1bea32b867580f8daa27b20b45dde85976a to /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1762193922.659918/root INFO: mounting 3335951aaec4c584683d4843ebaab1bea32b867580f8daa27b20b45dde85976a with podman image mount INFO: image 3335951aaec4c584683d4843ebaab1bea32b867580f8daa27b20b45dde85976a as /var/lib/containers/storage/overlay/98f4144d2961bc7d4084f373d56f1e0d5bd2fc5d809e21e666883f5b88b9accf/merged INFO: umounting image 3335951aaec4c584683d4843ebaab1bea32b867580f8daa27b20b45dde85976a (/var/lib/containers/storage/overlay/98f4144d2961bc7d4084f373d56f1e0d5bd2fc5d809e21e666883f5b88b9accf/merged) with podman image umount INFO: Removing image mock-bootstrap-bc3dd73b-5b41-4c7c-a135-cdf76568cf0a INFO: Package manager dnf5 detected and used (fallback) INFO: Not updating bootstrap chroot, bootstrap_image_ready=True Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1762193922.659918/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf5 detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-6.0.0-1.fc44.x86_64 rpm-sequoia-1.9.0-2.fc43.x86_64 dnf5-5.2.17.0-2.fc44.x86_64 dnf5-plugins-5.2.17.0-2.fc44.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: fedora 100% | 9.5 MiB/s | 21.8 MiB | 00m02s Copr repository 100% | 7.1 MiB/s | 16.2 MiB | 00m02s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 5.3.0-2.fc43 fedora 8.4 MiB bzip2 x86_64 1.0.8-21.fc43 fedora 95.3 KiB coreutils x86_64 9.8-3.fc44 fedora 5.4 MiB cpio x86_64 2.15-6.fc43 fedora 1.1 MiB diffutils x86_64 3.12-3.fc43 fedora 1.6 MiB fedora-release-common noarch 44-0.5 fedora 20.6 KiB findutils x86_64 1:4.10.0-6.fc43 fedora 1.8 MiB gawk x86_64 5.3.2-2.fc43 fedora 1.8 MiB glibc-minimal-langpack x86_64 2.42.9000-7.fc44 fedora 0.0 B grep x86_64 3.12-2.fc43 fedora 1.0 MiB gzip x86_64 1.14-1.fc44 fedora 397.8 KiB info x86_64 7.2-6.fc43 fedora 353.9 KiB patch x86_64 2.8-2.fc43 fedora 222.8 KiB redhat-rpm-config noarch 343-14.fc44 fedora 183.3 KiB rpm-build x86_64 6.0.0-1.fc44 fedora 287.4 KiB sed x86_64 4.9-6.fc44 fedora 857.3 KiB shadow-utils x86_64 2:4.18.0-3.fc43 fedora 3.9 MiB tar x86_64 2:1.35-6.fc43 fedora 2.9 MiB unzip x86_64 6.0-68.fc44 fedora 390.3 KiB util-linux x86_64 2.41.2-7.fc44 fedora 3.5 MiB which x86_64 2.23-3.fc43 fedora 83.5 KiB xz x86_64 1:5.8.1-2.fc43 fedora 1.3 MiB Installing dependencies: add-determinism x86_64 0.7.2-2.fc44 fedora 2.3 MiB alternatives x86_64 1.33-3.fc44 fedora 62.2 KiB ansible-srpm-macros noarch 1-18.1.fc43 fedora 35.7 KiB audit-libs x86_64 4.1.2-2.fc44 fedora 378.8 KiB binutils x86_64 2.45.50-5.fc44 fedora 27.1 MiB build-reproducibility-srpm-macros noarch 0.7.2-2.fc44 fedora 1.2 KiB bzip2-libs x86_64 1.0.8-21.fc43 fedora 80.6 KiB ca-certificates noarch 2025.2.80_v9.0.304-2.fc44 fedora 2.7 MiB coreutils-common x86_64 9.8-3.fc44 fedora 11.1 MiB crypto-policies noarch 20250714-5.gitcd6043a.fc44 fedora 146.9 KiB curl x86_64 8.17.0~rc2-1.fc44 fedora 474.2 KiB cyrus-sasl-lib x86_64 2.1.28-33.fc44 fedora 2.3 MiB debugedit x86_64 5.2-3.fc44 fedora 214.0 KiB dwz x86_64 0.16-2.fc43 fedora 287.1 KiB ed x86_64 1.22.2-1.fc44 fedora 148.1 KiB efi-srpm-macros noarch 6-5.fc44 fedora 40.2 KiB elfutils x86_64 0.194-1.fc44 fedora 2.9 MiB elfutils-debuginfod-client x86_64 0.194-1.fc44 fedora 84.0 KiB elfutils-default-yama-scope noarch 0.194-1.fc44 fedora 1.8 KiB elfutils-libelf x86_64 0.194-1.fc44 fedora 1.1 MiB elfutils-libs x86_64 0.194-1.fc44 fedora 687.5 KiB fedora-gpg-keys noarch 44-0.1 fedora 131.2 KiB fedora-release noarch 44-0.5 fedora 0.0 B fedora-release-identity-basic noarch 44-0.5 fedora 664.0 B fedora-repos noarch 44-0.1 fedora 4.9 KiB fedora-repos-rawhide noarch 44-0.1 fedora 2.2 KiB file x86_64 5.46-8.fc44 fedora 100.2 KiB file-libs x86_64 5.46-8.fc44 fedora 11.9 MiB filesystem x86_64 3.18-50.fc43 fedora 112.0 B filesystem-srpm-macros noarch 3.18-50.fc43 fedora 38.2 KiB fonts-srpm-macros noarch 1:5.0.0-1.fc44 fedora 55.8 KiB forge-srpm-macros noarch 0.4.0-3.fc43 fedora 38.9 KiB fpc-srpm-macros noarch 1.3-15.fc43 fedora 144.0 B gap-srpm-macros noarch 2-1.fc44 fedora 2.1 KiB gdb-minimal x86_64 16.3-6.fc44 fedora 13.3 MiB gdbm-libs x86_64 1:1.23-10.fc43 fedora 129.9 KiB ghc-srpm-macros noarch 1.9.2-3.fc43 fedora 779.0 B glibc x86_64 2.42.9000-7.fc44 fedora 6.7 MiB glibc-common x86_64 2.42.9000-7.fc44 fedora 1.0 MiB glibc-gconv-extra x86_64 2.42.9000-7.fc44 fedora 7.2 MiB gmp x86_64 1:6.3.0-4.fc44 fedora 815.3 KiB gnat-srpm-macros noarch 6-8.fc43 fedora 1.0 KiB gnulib-l10n noarch 20241231-1.fc44 fedora 655.0 KiB gnupg2 x86_64 2.4.8-4.fc43 fedora 6.5 MiB gnupg2-dirmngr x86_64 2.4.8-4.fc43 fedora 618.4 KiB gnupg2-gpg-agent x86_64 2.4.8-4.fc43 fedora 671.4 KiB gnupg2-gpgconf x86_64 2.4.8-4.fc43 fedora 250.0 KiB gnupg2-keyboxd x86_64 2.4.8-4.fc43 fedora 201.4 KiB gnupg2-verify x86_64 2.4.8-4.fc43 fedora 348.5 KiB gnutls x86_64 3.8.10-5.fc44 fedora 3.8 MiB go-srpm-macros noarch 3.8.0-1.fc44 fedora 61.9 KiB gpgverify noarch 2.2-3.fc43 fedora 8.7 KiB ima-evm-utils-libs x86_64 1.6.2-7.fc44 fedora 60.7 KiB jansson x86_64 2.14-3.fc43 fedora 89.1 KiB java-srpm-macros noarch 1-7.fc43 fedora 870.0 B json-c x86_64 0.18-7.fc43 fedora 82.7 KiB kernel-srpm-macros noarch 1.0-27.fc43 fedora 1.9 KiB keyutils-libs x86_64 1.6.3-6.fc43 fedora 54.3 KiB krb5-libs x86_64 1.21.3-10.fc44 fedora 2.3 MiB libacl x86_64 2.3.2-4.fc43 fedora 35.9 KiB libarchive x86_64 3.8.2-1.fc44 fedora 955.2 KiB libassuan x86_64 2.5.7-4.fc43 fedora 163.8 KiB libattr x86_64 2.5.2-6.fc43 fedora 24.4 KiB libblkid x86_64 2.41.2-7.fc44 fedora 262.4 KiB libbrotli x86_64 1.1.0-10.fc44 fedora 833.3 KiB libcap x86_64 2.77-1.fc44 fedora 209.1 KiB libcap-ng x86_64 0.8.5-8.fc44 fedora 68.9 KiB libcom_err x86_64 1.47.3-2.fc43 fedora 63.1 KiB libcurl x86_64 8.17.0~rc2-1.fc44 fedora 923.4 KiB libeconf x86_64 0.7.9-2.fc43 fedora 64.9 KiB libevent x86_64 2.1.12-16.fc43 fedora 883.1 KiB libfdisk x86_64 2.41.2-7.fc44 fedora 380.4 KiB libffi x86_64 3.5.2-1.fc44 fedora 83.8 KiB libfsverity x86_64 1.6-3.fc43 fedora 28.5 KiB libgcc x86_64 15.2.1-3.fc44 fedora 266.6 KiB libgcrypt x86_64 1.11.1-2.fc43 fedora 1.6 MiB libgomp x86_64 15.2.1-3.fc44 fedora 541.5 KiB libgpg-error x86_64 1.56-1.fc44 fedora 916.6 KiB libidn2 x86_64 2.3.8-2.fc43 fedora 552.5 KiB libksba x86_64 1.6.7-4.fc43 fedora 398.5 KiB liblastlog2 x86_64 2.41.2-7.fc44 fedora 33.9 KiB libmount x86_64 2.41.2-7.fc44 fedora 372.7 KiB libnghttp2 x86_64 1.68.0-1.fc44 fedora 162.2 KiB libpkgconf x86_64 2.3.0-3.fc43 fedora 78.1 KiB libpsl x86_64 0.21.5-6.fc43 fedora 76.4 KiB libselinux x86_64 3.9-5.fc44 fedora 193.1 KiB libselinux-utils x86_64 3.9-5.fc44 fedora 309.0 KiB libsemanage x86_64 3.9-4.fc44 fedora 308.5 KiB libsepol x86_64 3.9-2.fc43 fedora 822.0 KiB libsmartcols x86_64 2.41.2-7.fc44 fedora 180.5 KiB libssh x86_64 0.11.3-1.fc44 fedora 567.1 KiB libssh-config noarch 0.11.3-1.fc44 fedora 277.0 B libstdc++ x86_64 15.2.1-3.fc44 fedora 2.8 MiB libtasn1 x86_64 4.20.0-2.fc43 fedora 176.3 KiB libtool-ltdl x86_64 2.5.4-7.fc43 fedora 70.1 KiB libunistring x86_64 1.1-10.fc43 fedora 1.7 MiB libusb1 x86_64 1.0.29-4.fc44 fedora 171.3 KiB libuuid x86_64 2.41.2-7.fc44 fedora 37.3 KiB libverto x86_64 0.3.2-11.fc43 fedora 25.4 KiB libxcrypt x86_64 4.4.38-9.fc44 fedora 284.4 KiB libxml2 x86_64 2.12.10-5.fc44 fedora 1.7 MiB libzstd x86_64 1.5.7-3.fc44 fedora 940.3 KiB linkdupes x86_64 0.7.2-2.fc44 fedora 838.7 KiB lua-libs x86_64 5.4.8-2.fc43 fedora 280.8 KiB lua-srpm-macros noarch 1-16.fc43 fedora 1.3 KiB lz4-libs x86_64 1.10.0-3.fc43 fedora 161.4 KiB mpfr x86_64 4.2.2-2.fc43 fedora 832.8 KiB ncurses-base noarch 6.5-7.20250614.fc43 fedora 328.1 KiB ncurses-libs x86_64 6.5-7.20250614.fc43 fedora 946.3 KiB nettle x86_64 3.10.1-2.fc43 fedora 790.6 KiB npth x86_64 1.8-3.fc43 fedora 49.6 KiB ocaml-srpm-macros noarch 11-2.fc43 fedora 1.9 KiB openblas-srpm-macros noarch 2-20.fc43 fedora 112.0 B openldap x86_64 2.6.10-4.fc44 fedora 659.8 KiB openssl-libs x86_64 1:3.5.4-1.fc44 fedora 8.9 MiB p11-kit x86_64 0.25.8-1.fc44 fedora 2.3 MiB p11-kit-trust x86_64 0.25.8-1.fc44 fedora 446.5 KiB package-notes-srpm-macros noarch 0.5-14.fc43 fedora 1.6 KiB pam-libs x86_64 1.7.1-3.fc43 fedora 126.8 KiB pcre2 x86_64 10.46-1.fc44 fedora 697.7 KiB pcre2-syntax noarch 10.46-1.fc44 fedora 275.3 KiB perl-srpm-macros noarch 1-60.fc43 fedora 861.0 B pkgconf x86_64 2.3.0-3.fc43 fedora 88.5 KiB pkgconf-m4 noarch 2.3.0-3.fc43 fedora 14.4 KiB pkgconf-pkg-config x86_64 2.3.0-3.fc43 fedora 989.0 B policycoreutils x86_64 3.9-5.fc44 fedora 683.5 KiB popt x86_64 1.19-9.fc43 fedora 132.8 KiB publicsuffix-list-dafsa noarch 20250616-2.fc43 fedora 69.1 KiB pyproject-srpm-macros noarch 1.18.5-1.fc44 fedora 1.9 KiB python-srpm-macros noarch 3.14-9.fc44 fedora 51.6 KiB qt5-srpm-macros noarch 5.15.17-2.fc43 fedora 500.0 B qt6-srpm-macros noarch 6.10.0-1.fc44 fedora 464.0 B readline x86_64 8.3-2.fc43 fedora 511.7 KiB rpm x86_64 6.0.0-1.fc44 fedora 3.1 MiB rpm-build-libs x86_64 6.0.0-1.fc44 fedora 268.4 KiB rpm-libs x86_64 6.0.0-1.fc44 fedora 933.8 KiB rpm-plugin-selinux x86_64 6.0.0-1.fc44 fedora 12.0 KiB rpm-sequoia x86_64 1.9.0-2.fc43 fedora 2.5 MiB rpm-sign-libs x86_64 6.0.0-1.fc44 fedora 39.7 KiB rust-srpm-macros noarch 26.4-1.fc44 fedora 4.8 KiB selinux-policy noarch 42.14-1.fc44 fedora 31.9 KiB selinux-policy-targeted noarch 42.14-1.fc44 fedora 18.7 MiB setup noarch 2.15.0-27.fc44 fedora 724.9 KiB sqlite-libs x86_64 3.50.4-1.fc44 fedora 1.5 MiB systemd-libs x86_64 258.1-2.fc44 fedora 2.3 MiB systemd-standalone-sysusers x86_64 258.1-2.fc44 fedora 293.5 KiB tpm2-tss x86_64 4.1.3-8.fc43 fedora 1.6 MiB tree-sitter-srpm-macros noarch 0.4.2-1.fc43 fedora 8.3 KiB util-linux-core x86_64 2.41.2-7.fc44 fedora 1.5 MiB xxhash-libs x86_64 0.8.3-3.fc43 fedora 90.2 KiB xz-libs x86_64 1:5.8.1-2.fc43 fedora 217.8 KiB zig-srpm-macros noarch 1-5.fc43 fedora 1.1 KiB zip x86_64 3.0-44.fc43 fedora 694.5 KiB zlib-ng-compat x86_64 2.2.5-2.fc44 fedora 137.6 KiB zstd x86_64 1.5.7-3.fc44 fedora 506.2 KiB Installing groups: Buildsystem building group Transaction Summary: Installing: 177 packages Total size of inbound packages is 67 MiB. Need to download 67 MiB. After this operation, 219 MiB extra will be used (install 219 MiB, remove 0 B). [ 1/177] bzip2-0:1.0.8-21.fc43.x86_64 100% | 376.8 KiB/s | 51.6 KiB | 00m00s [ 2/177] cpio-0:2.15-6.fc43.x86_64 100% | 2.9 MiB/s | 293.1 KiB | 00m00s [ 3/177] diffutils-0:3.12-3.fc43.x86_6 100% | 6.2 MiB/s | 392.3 KiB | 00m00s [ 4/177] bash-0:5.3.0-2.fc43.x86_64 100% | 5.8 MiB/s | 1.9 MiB | 00m00s [ 5/177] coreutils-0:9.8-3.fc44.x86_64 100% | 3.5 MiB/s | 1.1 MiB | 00m00s [ 6/177] fedora-release-common-0:44-0. 100% | 915.0 KiB/s | 24.7 KiB | 00m00s [ 7/177] glibc-minimal-langpack-0:2.42 100% | 1.9 MiB/s | 50.2 KiB | 00m00s [ 8/177] findutils-1:4.10.0-6.fc43.x86 100% | 16.8 MiB/s | 550.0 KiB | 00m00s [ 9/177] grep-0:3.12-2.fc43.x86_64 100% | 9.4 MiB/s | 299.1 KiB | 00m00s [ 10/177] gzip-0:1.14-1.fc44.x86_64 100% | 4.0 MiB/s | 177.7 KiB | 00m00s [ 11/177] info-0:7.2-6.fc43.x86_64 100% | 3.7 MiB/s | 182.9 KiB | 00m00s [ 12/177] patch-0:2.8-2.fc43.x86_64 100% | 2.3 MiB/s | 113.8 KiB | 00m00s [ 13/177] redhat-rpm-config-0:343-14.fc 100% | 2.9 MiB/s | 79.2 KiB | 00m00s [ 14/177] sed-0:4.9-6.fc44.x86_64 100% | 10.7 MiB/s | 317.1 KiB | 00m00s [ 15/177] unzip-0:6.0-68.fc44.x86_64 100% | 3.2 MiB/s | 184.6 KiB | 00m00s [ 16/177] shadow-utils-2:4.18.0-3.fc43. 100% | 14.7 MiB/s | 1.3 MiB | 00m00s [ 17/177] tar-2:1.35-6.fc43.x86_64 100% | 8.5 MiB/s | 856.4 KiB | 00m00s [ 18/177] which-0:2.23-3.fc43.x86_64 100% | 887.9 KiB/s | 41.7 KiB | 00m00s [ 19/177] xz-1:5.8.1-2.fc43.x86_64 100% | 8.6 MiB/s | 572.5 KiB | 00m00s [ 20/177] rpm-build-0:6.0.0-1.fc44.x86_ 100% | 2.5 MiB/s | 138.0 KiB | 00m00s [ 21/177] util-linux-0:2.41.2-7.fc44.x8 100% | 24.9 MiB/s | 1.2 MiB | 00m00s [ 22/177] gawk-0:5.3.2-2.fc43.x86_64 100% | 12.5 MiB/s | 1.1 MiB | 00m00s [ 23/177] ncurses-libs-0:6.5-7.20250614 100% | 12.0 MiB/s | 332.7 KiB | 00m00s [ 24/177] filesystem-0:3.18-50.fc43.x86 100% | 24.2 MiB/s | 1.3 MiB | 00m00s [ 25/177] bzip2-libs-0:1.0.8-21.fc43.x8 100% | 1.8 MiB/s | 43.1 KiB | 00m00s [ 26/177] glibc-0:2.42.9000-7.fc44.x86_ 100% | 35.7 MiB/s | 2.2 MiB | 00m00s [ 27/177] libacl-0:2.3.2-4.fc43.x86_64 100% | 551.8 KiB/s | 24.3 KiB | 00m00s [ 28/177] gmp-1:6.3.0-4.fc44.x86_64 100% | 6.0 MiB/s | 319.3 KiB | 00m00s [ 29/177] coreutils-common-0:9.8-3.fc44 100% | 25.2 MiB/s | 2.1 MiB | 00m00s [ 30/177] libattr-0:2.5.2-6.fc43.x86_64 100% | 714.1 KiB/s | 17.9 KiB | 00m00s [ 31/177] libcap-0:2.77-1.fc44.x86_64 100% | 3.4 MiB/s | 87.1 KiB | 00m00s [ 32/177] fedora-repos-0:44-0.1.noarch 100% | 349.0 KiB/s | 9.1 KiB | 00m00s [ 33/177] systemd-libs-0:258.1-2.fc44.x 100% | 26.7 MiB/s | 820.8 KiB | 00m00s [ 34/177] openssl-libs-1:3.5.4-1.fc44.x 100% | 62.3 MiB/s | 2.6 MiB | 00m00s [ 35/177] ansible-srpm-macros-0:1-18.1. 100% | 568.8 KiB/s | 19.9 KiB | 00m00s [ 36/177] pcre2-0:10.46-1.fc44.x86_64 100% | 6.6 MiB/s | 262.2 KiB | 00m00s [ 37/177] glibc-common-0:2.42.9000-7.fc 100% | 7.7 MiB/s | 336.9 KiB | 00m00s [ 38/177] build-reproducibility-srpm-ma 100% | 186.3 KiB/s | 12.9 KiB | 00m00s [ 39/177] efi-srpm-macros-0:6-5.fc44.no 100% | 336.2 KiB/s | 22.5 KiB | 00m00s [ 40/177] dwz-0:0.16-2.fc43.x86_64 100% | 1.9 MiB/s | 135.5 KiB | 00m00s [ 41/177] filesystem-srpm-macros-0:3.18 100% | 1.0 MiB/s | 26.4 KiB | 00m00s [ 42/177] fonts-srpm-macros-1:5.0.0-1.f 100% | 1.1 MiB/s | 27.3 KiB | 00m00s [ 43/177] forge-srpm-macros-0:0.4.0-3.f 100% | 803.6 KiB/s | 20.1 KiB | 00m00s [ 44/177] fpc-srpm-macros-0:1.3-15.fc43 100% | 315.7 KiB/s | 7.9 KiB | 00m00s [ 45/177] gap-srpm-macros-0:2-1.fc44.no 100% | 362.1 KiB/s | 9.1 KiB | 00m00s [ 46/177] ghc-srpm-macros-0:1.9.2-3.fc4 100% | 349.8 KiB/s | 8.7 KiB | 00m00s [ 47/177] gnat-srpm-macros-0:6-8.fc43.n 100% | 273.8 KiB/s | 8.5 KiB | 00m00s [ 48/177] go-srpm-macros-0:3.8.0-1.fc44 100% | 913.1 KiB/s | 28.3 KiB | 00m00s [ 49/177] java-srpm-macros-0:1-7.fc43.n 100% | 256.2 KiB/s | 7.9 KiB | 00m00s [ 50/177] kernel-srpm-macros-0:1.0-27.f 100% | 356.8 KiB/s | 8.9 KiB | 00m00s [ 51/177] lua-srpm-macros-0:1-16.fc43.n 100% | 350.3 KiB/s | 8.8 KiB | 00m00s [ 52/177] ocaml-srpm-macros-0:11-2.fc43 100% | 370.4 KiB/s | 9.3 KiB | 00m00s [ 53/177] openblas-srpm-macros-0:2-20.f 100% | 303.8 KiB/s | 7.6 KiB | 00m00s [ 54/177] package-notes-srpm-macros-0:0 100% | 359.4 KiB/s | 9.0 KiB | 00m00s [ 55/177] perl-srpm-macros-0:1-60.fc43. 100% | 331.6 KiB/s | 8.3 KiB | 00m00s [ 56/177] pyproject-srpm-macros-0:1.18. 100% | 529.0 KiB/s | 13.2 KiB | 00m00s [ 57/177] python-srpm-macros-0:3.14-9.f 100% | 952.3 KiB/s | 23.8 KiB | 00m00s [ 58/177] qt5-srpm-macros-0:5.15.17-2.f 100% | 346.4 KiB/s | 8.7 KiB | 00m00s [ 59/177] qt6-srpm-macros-0:6.10.0-1.fc 100% | 374.3 KiB/s | 9.4 KiB | 00m00s [ 60/177] rust-srpm-macros-0:26.4-1.fc4 100% | 446.4 KiB/s | 11.2 KiB | 00m00s [ 61/177] tree-sitter-srpm-macros-0:0.4 100% | 534.0 KiB/s | 13.4 KiB | 00m00s [ 62/177] zig-srpm-macros-0:1-5.fc43.no 100% | 337.4 KiB/s | 8.4 KiB | 00m00s [ 63/177] libeconf-0:0.7.9-2.fc43.x86_6 100% | 1.4 MiB/s | 35.2 KiB | 00m00s [ 64/177] zip-0:3.0-44.fc43.x86_64 100% | 9.5 MiB/s | 261.6 KiB | 00m00s [ 65/177] libxcrypt-0:4.4.38-9.fc44.x86 100% | 5.0 MiB/s | 127.1 KiB | 00m00s [ 66/177] pam-libs-0:1.7.1-3.fc43.x86_6 100% | 2.2 MiB/s | 57.5 KiB | 00m00s [ 67/177] setup-0:2.15.0-27.fc44.noarch 100% | 6.1 MiB/s | 157.4 KiB | 00m00s [ 68/177] xz-libs-1:5.8.1-2.fc43.x86_64 100% | 4.4 MiB/s | 112.9 KiB | 00m00s [ 69/177] mpfr-0:4.2.2-2.fc43.x86_64 100% | 7.5 MiB/s | 347.0 KiB | 00m00s [ 70/177] readline-0:8.3-2.fc43.x86_64 100% | 5.0 MiB/s | 224.6 KiB | 00m00s [ 71/177] debugedit-0:5.2-3.fc44.x86_64 100% | 3.3 MiB/s | 85.6 KiB | 00m00s [ 72/177] elfutils-libelf-0:0.194-1.fc4 100% | 7.7 MiB/s | 205.3 KiB | 00m00s [ 73/177] elfutils-0:0.194-1.fc44.x86_6 100% | 19.4 MiB/s | 575.8 KiB | 00m00s [ 74/177] libarchive-0:3.8.2-1.fc44.x86 100% | 15.3 MiB/s | 422.2 KiB | 00m00s [ 75/177] libgcc-0:15.2.1-3.fc44.x86_64 100% | 5.2 MiB/s | 133.7 KiB | 00m00s [ 76/177] popt-0:1.19-9.fc43.x86_64 100% | 2.6 MiB/s | 65.7 KiB | 00m00s [ 77/177] libstdc++-0:15.2.1-3.fc44.x86 100% | 29.0 MiB/s | 920.8 KiB | 00m00s [ 78/177] rpm-0:6.0.0-1.fc44.x86_64 100% | 18.8 MiB/s | 576.6 KiB | 00m00s [ 79/177] zstd-0:1.5.7-3.fc44.x86_64 100% | 4.7 MiB/s | 189.5 KiB | 00m00s [ 80/177] util-linux-core-0:2.41.2-7.fc 100% | 9.8 MiB/s | 550.8 KiB | 00m00s [ 81/177] zlib-ng-compat-0:2.2.5-2.fc44 100% | 2.3 MiB/s | 79.2 KiB | 00m00s [ 82/177] glibc-gconv-extra-0:2.42.9000 100% | 46.9 MiB/s | 1.6 MiB | 00m00s [ 83/177] ncurses-base-0:6.5-7.20250614 100% | 3.4 MiB/s | 88.2 KiB | 00m00s [ 84/177] gnulib-l10n-0:20241231-1.fc44 100% | 3.1 MiB/s | 150.2 KiB | 00m00s [ 85/177] crypto-policies-0:20250714-5. 100% | 3.2 MiB/s | 98.5 KiB | 00m00s [ 86/177] ca-certificates-0:2025.2.80_v 100% | 21.6 MiB/s | 973.8 KiB | 00m00s [ 87/177] fedora-gpg-keys-0:44-0.1.noar 100% | 5.4 MiB/s | 138.8 KiB | 00m00s [ 88/177] fedora-repos-rawhide-0:44-0.1 100% | 345.9 KiB/s | 8.6 KiB | 00m00s [ 89/177] pcre2-syntax-0:10.46-1.fc44.n 100% | 6.3 MiB/s | 162.2 KiB | 00m00s [ 90/177] add-determinism-0:0.7.2-2.fc4 100% | 26.3 MiB/s | 887.6 KiB | 00m00s [ 91/177] linkdupes-0:0.7.2-2.fc44.x86_ 100% | 12.4 MiB/s | 356.3 KiB | 00m00s [ 92/177] elfutils-libs-0:0.194-1.fc44. 100% | 10.2 MiB/s | 271.6 KiB | 00m00s [ 93/177] elfutils-debuginfod-client-0: 100% | 1.8 MiB/s | 46.9 KiB | 00m00s [ 94/177] lz4-libs-0:1.10.0-3.fc43.x86_ 100% | 3.0 MiB/s | 78.0 KiB | 00m00s [ 95/177] libzstd-0:1.5.7-3.fc44.x86_64 100% | 13.0 MiB/s | 359.1 KiB | 00m00s [ 96/177] curl-0:8.17.0~rc2-1.fc44.x86_ 100% | 8.9 MiB/s | 237.1 KiB | 00m00s [ 97/177] elfutils-default-yama-scope-0 100% | 495.0 KiB/s | 12.4 KiB | 00m00s [ 98/177] json-c-0:0.18-7.fc43.x86_64 100% | 1.8 MiB/s | 45.0 KiB | 00m00s [ 99/177] lua-libs-0:5.4.8-2.fc43.x86_6 100% | 4.1 MiB/s | 131.7 KiB | 00m00s [100/177] rpm-libs-0:6.0.0-1.fc44.x86_6 100% | 11.9 MiB/s | 400.5 KiB | 00m00s [101/177] rpm-sequoia-0:1.9.0-2.fc43.x8 100% | 24.6 MiB/s | 933.3 KiB | 00m00s [102/177] rpm-build-libs-0:6.0.0-1.fc44 100% | 5.0 MiB/s | 127.9 KiB | 00m00s [103/177] sqlite-libs-0:3.50.4-1.fc44.x 100% | 23.2 MiB/s | 761.5 KiB | 00m00s [104/177] libgomp-0:15.2.1-3.fc44.x86_6 100% | 13.5 MiB/s | 373.8 KiB | 00m00s [105/177] rpm-sign-libs-0:6.0.0-1.fc44. 100% | 1.1 MiB/s | 28.2 KiB | 00m00s [106/177] ima-evm-utils-libs-0:1.6.2-7. 100% | 1.1 MiB/s | 29.4 KiB | 00m00s [107/177] libfsverity-0:1.6-3.fc43.x86_ 100% | 745.1 KiB/s | 18.6 KiB | 00m00s [108/177] gnupg2-0:2.4.8-4.fc43.x86_64 100% | 32.2 MiB/s | 1.6 MiB | 00m00s [109/177] gpgverify-0:2.2-3.fc43.noarch 100% | 444.1 KiB/s | 11.1 KiB | 00m00s [110/177] gnupg2-gpgconf-0:2.4.8-4.fc43 100% | 3.6 MiB/s | 115.0 KiB | 00m00s [111/177] gnupg2-dirmngr-0:2.4.8-4.fc43 100% | 7.2 MiB/s | 274.6 KiB | 00m00s [112/177] gnupg2-gpg-agent-0:2.4.8-4.fc 100% | 8.3 MiB/s | 272.9 KiB | 00m00s [113/177] gnupg2-keyboxd-0:2.4.8-4.fc43 100% | 3.3 MiB/s | 94.7 KiB | 00m00s [114/177] libassuan-0:2.5.7-4.fc43.x86_ 100% | 2.4 MiB/s | 67.4 KiB | 00m00s [115/177] gnupg2-verify-0:2.4.8-4.fc43. 100% | 5.8 MiB/s | 171.2 KiB | 00m00s [116/177] libgpg-error-0:1.56-1.fc44.x8 100% | 9.2 MiB/s | 245.7 KiB | 00m00s [117/177] npth-0:1.8-3.fc43.x86_64 100% | 1.0 MiB/s | 25.7 KiB | 00m00s [118/177] libgcrypt-0:1.11.1-2.fc43.x86 100% | 20.8 MiB/s | 595.8 KiB | 00m00s [119/177] tpm2-tss-0:4.1.3-8.fc43.x86_6 100% | 15.4 MiB/s | 425.9 KiB | 00m00s [120/177] libksba-0:1.6.7-4.fc43.x86_64 100% | 6.0 MiB/s | 160.4 KiB | 00m00s [121/177] gnutls-0:3.8.10-5.fc44.x86_64 100% | 40.1 MiB/s | 1.4 MiB | 00m00s [122/177] libusb1-0:1.0.29-4.fc44.x86_6 100% | 1.8 MiB/s | 79.9 KiB | 00m00s [123/177] openldap-0:2.6.10-4.fc44.x86_ 100% | 5.8 MiB/s | 259.5 KiB | 00m00s [124/177] libidn2-0:2.3.8-2.fc43.x86_64 100% | 4.7 MiB/s | 174.9 KiB | 00m00s [125/177] libtasn1-0:4.20.0-2.fc43.x86_ 100% | 2.9 MiB/s | 74.5 KiB | 00m00s [126/177] nettle-0:3.10.1-2.fc43.x86_64 100% | 15.3 MiB/s | 424.2 KiB | 00m00s [127/177] libunistring-0:1.1-10.fc43.x8 100% | 18.9 MiB/s | 542.9 KiB | 00m00s [128/177] p11-kit-0:0.25.8-1.fc44.x86_6 100% | 17.8 MiB/s | 510.0 KiB | 00m00s [129/177] libevent-0:2.1.12-16.fc43.x86 100% | 9.7 MiB/s | 257.8 KiB | 00m00s [130/177] cyrus-sasl-lib-0:2.1.28-33.fc 100% | 26.8 MiB/s | 796.5 KiB | 00m00s [131/177] libtool-ltdl-0:2.5.4-7.fc43.x 100% | 1.4 MiB/s | 36.2 KiB | 00m00s [132/177] libffi-0:3.5.2-1.fc44.x86_64 100% | 1.6 MiB/s | 41.1 KiB | 00m00s [133/177] gdbm-libs-1:1.23-10.fc43.x86_ 100% | 2.2 MiB/s | 56.8 KiB | 00m00s [134/177] libblkid-0:2.41.2-7.fc44.x86_ 100% | 4.8 MiB/s | 123.2 KiB | 00m00s [135/177] libuuid-0:2.41.2-7.fc44.x86_6 100% | 1.0 MiB/s | 26.3 KiB | 00m00s [136/177] libmount-0:2.41.2-7.fc44.x86_ 100% | 6.4 MiB/s | 162.7 KiB | 00m00s [137/177] libselinux-0:3.9-5.fc44.x86_6 100% | 3.8 MiB/s | 97.8 KiB | 00m00s [138/177] libsepol-0:3.9-2.fc43.x86_64 100% | 12.5 MiB/s | 345.4 KiB | 00m00s [139/177] libsmartcols-0:2.41.2-7.fc44. 100% | 3.3 MiB/s | 84.1 KiB | 00m00s [140/177] audit-libs-0:4.1.2-2.fc44.x86 100% | 5.4 MiB/s | 138.4 KiB | 00m00s [141/177] libcap-ng-0:0.8.5-8.fc44.x86_ 100% | 1.3 MiB/s | 32.2 KiB | 00m00s [142/177] libfdisk-0:2.41.2-7.fc44.x86_ 100% | 6.3 MiB/s | 162.0 KiB | 00m00s [143/177] liblastlog2-0:2.41.2-7.fc44.x 100% | 969.7 KiB/s | 23.3 KiB | 00m00s [144/177] libsemanage-0:3.9-4.fc44.x86_ 100% | 2.7 MiB/s | 123.5 KiB | 00m00s [145/177] file-0:5.46-8.fc44.x86_64 100% | 1.9 MiB/s | 48.8 KiB | 00m00s [146/177] file-libs-0:5.46-8.fc44.x86_6 100% | 16.9 MiB/s | 849.9 KiB | 00m00s [147/177] alternatives-0:1.33-3.fc44.x8 100% | 1.6 MiB/s | 40.8 KiB | 00m00s [148/177] jansson-0:2.14-3.fc43.x86_64 100% | 1.8 MiB/s | 45.3 KiB | 00m00s [149/177] pkgconf-pkg-config-0:2.3.0-3. 100% | 400.3 KiB/s | 9.6 KiB | 00m00s [150/177] binutils-0:2.45.50-5.fc44.x86 100% | 98.5 MiB/s | 5.9 MiB | 00m00s [151/177] pkgconf-0:2.3.0-3.fc43.x86_64 100% | 1.5 MiB/s | 44.6 KiB | 00m00s [152/177] pkgconf-m4-0:2.3.0-3.fc43.noa 100% | 463.7 KiB/s | 13.9 KiB | 00m00s [153/177] libpkgconf-0:2.3.0-3.fc43.x86 100% | 1.4 MiB/s | 37.9 KiB | 00m00s [154/177] ed-0:1.22.2-1.fc44.x86_64 100% | 3.1 MiB/s | 83.7 KiB | 00m00s [155/177] libxml2-0:2.12.10-5.fc44.x86_ 100% | 24.2 MiB/s | 692.7 KiB | 00m00s [156/177] p11-kit-trust-0:0.25.8-1.fc44 100% | 4.9 MiB/s | 139.7 KiB | 00m00s [157/177] fedora-release-0:44-0.5.noarc 100% | 484.1 KiB/s | 13.6 KiB | 00m00s [158/177] systemd-standalone-sysusers-0 100% | 5.6 MiB/s | 144.6 KiB | 00m00s [159/177] xxhash-libs-0:0.8.3-3.fc43.x8 100% | 1.4 MiB/s | 38.5 KiB | 00m00s [160/177] gdb-minimal-0:16.3-6.fc44.x86 100% | 122.4 MiB/s | 4.4 MiB | 00m00s [161/177] fedora-release-identity-basic 100% | 596.8 KiB/s | 14.3 KiB | 00m00s [162/177] libcurl-0:8.17.0~rc2-1.fc44.x 100% | 14.9 MiB/s | 411.8 KiB | 00m00s [163/177] krb5-libs-0:1.21.3-10.fc44.x8 100% | 28.6 MiB/s | 761.1 KiB | 00m00s [164/177] libnghttp2-0:1.68.0-1.fc44.x8 100% | 2.8 MiB/s | 72.8 KiB | 00m00s [165/177] libpsl-0:0.21.5-6.fc43.x86_64 100% | 2.3 MiB/s | 65.0 KiB | 00m00s [166/177] libssh-0:0.11.3-1.fc44.x86_64 100% | 9.1 MiB/s | 232.8 KiB | 00m00s [167/177] keyutils-libs-0:1.6.3-6.fc43. 100% | 1.3 MiB/s | 31.4 KiB | 00m00s [168/177] libcom_err-0:1.47.3-2.fc43.x8 100% | 1.0 MiB/s | 26.8 KiB | 00m00s [169/177] libverto-0:0.3.2-11.fc43.x86_ 100% | 827.0 KiB/s | 20.7 KiB | 00m00s [170/177] publicsuffix-list-dafsa-0:202 100% | 1.2 MiB/s | 59.2 KiB | 00m00s [171/177] libssh-config-0:0.11.3-1.fc44 100% | 246.3 KiB/s | 9.1 KiB | 00m00s [172/177] selinux-policy-0:42.14-1.fc44 100% | 1.1 MiB/s | 62.7 KiB | 00m00s [173/177] rpm-plugin-selinux-0:6.0.0-1. 100% | 336.1 KiB/s | 19.5 KiB | 00m00s [174/177] selinux-policy-targeted-0:42. 100% | 68.6 MiB/s | 6.8 MiB | 00m00s [175/177] policycoreutils-0:3.9-5.fc44. 100% | 7.0 MiB/s | 214.6 KiB | 00m00s [176/177] libselinux-utils-0:3.9-5.fc44 100% | 3.9 MiB/s | 119.3 KiB | 00m00s [177/177] libbrotli-0:1.1.0-10.fc44.x86 100% | 13.2 MiB/s | 339.1 KiB | 00m00s -------------------------------------------------------------------------------- [177/177] Total 100% | 29.1 MiB/s | 66.5 MiB | 00m02s Running transaction Importing OpenPGP key 0x6D9F90A6: UserID : "Fedora (44) " Fingerprint: 36F612DCF27F7D1A48A835E4DBFCF71C6D9F90A6 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-44-primary The key was successfully imported. Importing OpenPGP key 0x6D9F90A6: UserID : "Fedora (44) " Fingerprint: 36F612DCF27F7D1A48A835E4DBFCF71C6D9F90A6 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-44-primary The key was successfully imported. Importing OpenPGP key 0x31645531: UserID : "Fedora (43) " Fingerprint: C6E7F081CF80E13146676E88829B606631645531 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-43-primary The key was successfully imported. Importing OpenPGP key 0xF577861E: UserID : "Fedora (45) " Fingerprint: 4F50A6114CD5C6976A7F1179655A4B02F577861E From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-45-primary The key was successfully imported. [ 1/179] Verify package files 100% | 662.0 B/s | 177.0 B | 00m00s [ 2/179] Prepare transaction 100% | 3.2 KiB/s | 177.0 B | 00m00s [ 3/179] Installing libgcc-0:15.2.1-3. 100% | 262.0 MiB/s | 268.3 KiB | 00m00s [ 4/179] Installing libssh-config-0:0. 100% | 0.0 B/s | 816.0 B | 00m00s [ 5/179] Installing publicsuffix-list- 100% | 0.0 B/s | 69.8 KiB | 00m00s [ 6/179] Installing fedora-release-ide 100% | 0.0 B/s | 920.0 B | 00m00s [ 7/179] Installing fedora-gpg-keys-0: 100% | 43.7 MiB/s | 179.0 KiB | 00m00s [ 8/179] Installing fedora-repos-rawhi 100% | 0.0 B/s | 2.4 KiB | 00m00s [ 9/179] Installing fedora-repos-0:44- 100% | 0.0 B/s | 5.7 KiB | 00m00s [ 10/179] Installing fedora-release-com 100% | 24.3 MiB/s | 24.9 KiB | 00m00s [ 11/179] Installing fedora-release-0:4 100% | 15.1 KiB/s | 124.0 B | 00m00s >>> Running sysusers scriptlet: setup-0:2.15.0-27.fc44.noarch >>> Finished sysusers scriptlet: setup-0:2.15.0-27.fc44.noarch >>> Scriptlet output: >>> Creating group 'adm' with GID 4. >>> Creating group 'audio' with GID 63. >>> Creating group 'cdrom' with GID 11. >>> Creating group 'clock' with GID 103. >>> Creating group 'dialout' with GID 18. >>> Creating group 'disk' with GID 6. >>> Creating group 'floppy' with GID 19. >>> Creating group 'ftp' with GID 50. >>> Creating group 'games' with GID 20. >>> Creating group 'input' with GID 104. >>> Creating group 'kmem' with GID 9. >>> Creating group 'kvm' with GID 36. >>> Creating group 'lock' with GID 54. >>> Creating group 'lp' with GID 7. >>> Creating group 'mail' with GID 12. >>> Creating group 'man' with GID 15. >>> Creating group 'mem' with GID 8. >>> Creating group 'nobody' with GID 65534. >>> Creating group 'render' with GID 105. >>> Creating group 'root' with GID 0. >>> Creating group 'sgx' with GID 106. >>> Creating group 'sys' with GID 3. >>> Creating group 'tape' with GID 33. >>> Creating group 'tty' with GID 5. >>> Creating group 'users' with GID 100. >>> Creating group 'utmp' with GID 22. >>> Creating group 'video' with GID 39. >>> Creating group 'wheel' with GID 10. >>> Creating user 'adm' (adm) with UID 3 and GID 4. >>> Creating group 'bin' with GID 1. >>> Creating user 'bin' (bin) with UID 1 and GID 1. >>> Creating group 'daemon' with GID 2. >>> Creating user 'daemon' (daemon) with UID 2 and GID 2. >>> Creating user 'ftp' (FTP User) with UID 14 and GID 50. >>> Creating user 'games' (games) with UID 12 and GID 100. >>> Creating user 'halt' (halt) with UID 7 and GID 0. >>> Creating user 'lp' (lp) with UID 4 and GID 7. >>> Creating user 'mail' (mail) with UID 8 and GID 12. >>> Creating user 'nobody' (Kernel Overflow User) with UID 65534 and GID 65534. >>> Creating user 'operator' (operator) with UID 11 and GID 0. >>> Creating user 'root' (Super User) with UID 0 and GID 0. >>> Creating user 'shutdown' (shutdown) with UID 6 and GID 0. >>> Creating user 'sync' (sync) with UID 5 and GID 0. >>> [ 12/179] Installing setup-0:2.15.0-27. 100% | 47.6 MiB/s | 730.6 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 13/179] Installing filesystem-0:3.18- 100% | 2.7 MiB/s | 212.8 KiB | 00m00s [ 14/179] Installing pkgconf-m4-0:2.3.0 100% | 0.0 B/s | 14.8 KiB | 00m00s [ 15/179] Installing pcre2-syntax-0:10. 100% | 271.2 MiB/s | 277.8 KiB | 00m00s [ 16/179] Installing gnulib-l10n-0:2024 100% | 215.5 MiB/s | 661.9 KiB | 00m00s [ 17/179] Installing coreutils-common-0 100% | 360.5 MiB/s | 11.2 MiB | 00m00s [ 18/179] Installing ncurses-base-0:6.5 100% | 86.3 MiB/s | 353.5 KiB | 00m00s [ 19/179] Installing bash-0:5.3.0-2.fc4 100% | 255.5 MiB/s | 8.4 MiB | 00m00s [ 20/179] Installing glibc-common-0:2.4 100% | 60.1 MiB/s | 1.0 MiB | 00m00s [ 21/179] Installing glibc-gconv-extra- 100% | 270.9 MiB/s | 7.3 MiB | 00m00s [ 22/179] Installing glibc-0:2.42.9000- 100% | 176.2 MiB/s | 6.7 MiB | 00m00s [ 23/179] Installing ncurses-libs-0:6.5 100% | 232.6 MiB/s | 952.8 KiB | 00m00s [ 24/179] Installing glibc-minimal-lang 100% | 0.0 B/s | 124.0 B | 00m00s [ 25/179] Installing zlib-ng-compat-0:2 100% | 135.2 MiB/s | 138.4 KiB | 00m00s [ 26/179] Installing bzip2-libs-0:1.0.8 100% | 79.8 MiB/s | 81.7 KiB | 00m00s [ 27/179] Installing libgpg-error-0:1.5 100% | 56.3 MiB/s | 922.5 KiB | 00m00s [ 28/179] Installing libstdc++-0:15.2.1 100% | 355.5 MiB/s | 2.8 MiB | 00m00s [ 29/179] Installing libassuan-0:2.5.7- 100% | 161.7 MiB/s | 165.6 KiB | 00m00s [ 30/179] Installing libgcrypt-0:1.11.1 100% | 393.8 MiB/s | 1.6 MiB | 00m00s [ 31/179] Installing readline-0:8.3-2.f 100% | 250.9 MiB/s | 513.9 KiB | 00m00s [ 32/179] Installing gmp-1:6.3.0-4.fc44 100% | 266.1 MiB/s | 817.5 KiB | 00m00s [ 33/179] Installing xz-libs-1:5.8.1-2. 100% | 213.8 MiB/s | 218.9 KiB | 00m00s [ 34/179] Installing libuuid-0:2.41.2-7 100% | 37.6 MiB/s | 38.5 KiB | 00m00s [ 35/179] Installing popt-0:1.19-9.fc43 100% | 68.1 MiB/s | 139.4 KiB | 00m00s [ 36/179] Installing libzstd-0:1.5.7-3. 100% | 306.5 MiB/s | 941.6 KiB | 00m00s [ 37/179] Installing elfutils-libelf-0: 100% | 373.7 MiB/s | 1.1 MiB | 00m00s [ 38/179] Installing npth-0:1.8-3.fc43. 100% | 0.0 B/s | 50.7 KiB | 00m00s [ 39/179] Installing libblkid-0:2.41.2- 100% | 257.4 MiB/s | 263.5 KiB | 00m00s [ 40/179] Installing libxcrypt-0:4.4.38 100% | 280.4 MiB/s | 287.1 KiB | 00m00s [ 41/179] Installing sqlite-libs-0:3.50 100% | 379.1 MiB/s | 1.5 MiB | 00m00s [ 42/179] Installing libsepol-0:3.9-2.f 100% | 267.9 MiB/s | 822.9 KiB | 00m00s [ 43/179] Installing gnupg2-gpgconf-0:2 100% | 17.6 MiB/s | 252.0 KiB | 00m00s [ 44/179] Installing libattr-0:2.5.2-6. 100% | 0.0 B/s | 25.4 KiB | 00m00s [ 45/179] Installing libacl-0:2.3.2-4.f 100% | 0.0 B/s | 36.8 KiB | 00m00s [ 46/179] Installing pcre2-0:10.46-1.fc 100% | 341.4 MiB/s | 699.1 KiB | 00m00s [ 47/179] Installing libselinux-0:3.9-5 100% | 189.8 MiB/s | 194.4 KiB | 00m00s [ 48/179] Installing grep-0:3.12-2.fc43 100% | 59.0 MiB/s | 1.0 MiB | 00m00s [ 49/179] Installing sed-0:4.9-6.fc44.x 100% | 52.8 MiB/s | 865.5 KiB | 00m00s [ 50/179] Installing findutils-1:4.10.0 100% | 103.2 MiB/s | 1.9 MiB | 00m00s [ 51/179] Installing libtasn1-0:4.20.0- 100% | 173.9 MiB/s | 178.1 KiB | 00m00s [ 52/179] Installing libunistring-0:1.1 100% | 345.3 MiB/s | 1.7 MiB | 00m00s [ 53/179] Installing libidn2-0:2.3.8-2. 100% | 54.6 MiB/s | 558.7 KiB | 00m00s [ 54/179] Installing crypto-policies-0: 100% | 33.6 MiB/s | 172.0 KiB | 00m00s [ 55/179] Installing xz-1:5.8.1-2.fc43. 100% | 70.1 MiB/s | 1.3 MiB | 00m00s [ 56/179] Installing libmount-0:2.41.2- 100% | 182.5 MiB/s | 373.8 KiB | 00m00s [ 57/179] Installing gnupg2-verify-0:2. 100% | 26.3 MiB/s | 349.9 KiB | 00m00s [ 58/179] Installing dwz-0:0.16-2.fc43. 100% | 21.7 MiB/s | 288.5 KiB | 00m00s [ 59/179] Installing mpfr-0:4.2.2-2.fc4 100% | 271.6 MiB/s | 834.4 KiB | 00m00s [ 60/179] Installing gawk-0:5.3.2-2.fc4 100% | 100.9 MiB/s | 1.8 MiB | 00m00s [ 61/179] Installing libksba-0:1.6.7-4. 100% | 195.8 MiB/s | 401.1 KiB | 00m00s [ 62/179] Installing unzip-0:6.0-68.fc4 100% | 27.5 MiB/s | 393.8 KiB | 00m00s [ 63/179] Installing file-libs-0:5.46-8 100% | 624.1 MiB/s | 11.9 MiB | 00m00s [ 64/179] Installing file-0:5.46-8.fc44 100% | 7.6 MiB/s | 101.7 KiB | 00m00s [ 65/179] Installing diffutils-0:3.12-3 100% | 91.8 MiB/s | 1.6 MiB | 00m00s [ 66/179] Installing libeconf-0:0.7.9-2 100% | 65.0 MiB/s | 66.5 KiB | 00m00s [ 67/179] Installing json-c-0:0.18-7.fc 100% | 82.0 MiB/s | 84.0 KiB | 00m00s [ 68/179] Installing lua-libs-0:5.4.8-2 100% | 275.3 MiB/s | 281.9 KiB | 00m00s [ 69/179] Installing libffi-0:3.5.2-1.f 100% | 83.2 MiB/s | 85.2 KiB | 00m00s [ 70/179] Installing p11-kit-0:0.25.8-1 100% | 109.1 MiB/s | 2.3 MiB | 00m00s [ 71/179] Installing libsmartcols-0:2.4 100% | 177.3 MiB/s | 181.6 KiB | 00m00s [ 72/179] Installing libcap-ng-0:0.8.5- 100% | 69.2 MiB/s | 70.8 KiB | 00m00s [ 73/179] Installing audit-libs-0:4.1.2 100% | 186.3 MiB/s | 381.5 KiB | 00m00s [ 74/179] Installing pam-libs-0:1.7.1-3 100% | 126.0 MiB/s | 129.0 KiB | 00m00s [ 75/179] Installing libcap-0:2.77-1.fc 100% | 14.9 MiB/s | 214.3 KiB | 00m00s [ 76/179] Installing systemd-libs-0:258 100% | 331.5 MiB/s | 2.3 MiB | 00m00s [ 77/179] Installing libsemanage-0:3.9- 100% | 303.0 MiB/s | 310.2 KiB | 00m00s [ 78/179] Installing alternatives-0:1.3 100% | 4.8 MiB/s | 63.8 KiB | 00m00s [ 79/179] Installing p11-kit-trust-0:0. 100% | 19.9 MiB/s | 448.3 KiB | 00m00s [ 80/179] Installing openssl-libs-1:3.5 100% | 356.4 MiB/s | 8.9 MiB | 00m00s [ 81/179] Installing coreutils-0:9.8-3. 100% | 156.4 MiB/s | 5.5 MiB | 00m00s [ 82/179] Installing ca-certificates-0: 100% | 2.0 MiB/s | 2.5 MiB | 00m01s [ 83/179] Installing gzip-0:1.14-1.fc44 100% | 26.3 MiB/s | 403.3 KiB | 00m00s [ 84/179] Installing rpm-sequoia-0:1.9. 100% | 354.1 MiB/s | 2.5 MiB | 00m00s [ 85/179] Installing libfsverity-0:1.6- 100% | 0.0 B/s | 29.5 KiB | 00m00s [ 86/179] Installing libevent-0:2.1.12- 100% | 288.7 MiB/s | 886.8 KiB | 00m00s [ 87/179] Installing util-linux-core-0: 100% | 82.2 MiB/s | 1.5 MiB | 00m00s [ 88/179] Installing libusb1-0:1.0.29-4 100% | 18.8 MiB/s | 172.9 KiB | 00m00s >>> Running sysusers scriptlet: tpm2-tss-0:4.1.3-8.fc43.x86_64 >>> Finished sysusers scriptlet: tpm2-tss-0:4.1.3-8.fc43.x86_64 >>> Scriptlet output: >>> Creating group 'tss' with GID 59. >>> Creating user 'tss' (Account used for TPM access) with UID 59 and GID 59. >>> [ 89/179] Installing tpm2-tss-0:4.1.3-8 100% | 262.0 MiB/s | 1.6 MiB | 00m00s [ 90/179] Installing ima-evm-utils-libs 100% | 60.5 MiB/s | 62.0 KiB | 00m00s [ 91/179] Installing gnupg2-gpg-agent-0 100% | 28.7 MiB/s | 675.4 KiB | 00m00s [ 92/179] Installing systemd-standalone 100% | 20.5 MiB/s | 294.1 KiB | 00m00s [ 93/179] Installing rpm-libs-0:6.0.0-1 100% | 304.5 MiB/s | 935.3 KiB | 00m00s [ 94/179] Installing zip-0:3.0-44.fc43. 100% | 45.5 MiB/s | 698.4 KiB | 00m00s [ 95/179] Installing gnupg2-keyboxd-0:2 100% | 28.3 MiB/s | 202.7 KiB | 00m00s [ 96/179] Installing libpsl-0:0.21.5-6. 100% | 75.7 MiB/s | 77.5 KiB | 00m00s [ 97/179] Installing tar-2:1.35-6.fc43. 100% | 134.5 MiB/s | 3.0 MiB | 00m00s [ 98/179] Installing linkdupes-0:0.7.2- 100% | 58.6 MiB/s | 840.1 KiB | 00m00s [ 99/179] Installing libselinux-utils-0 100% | 21.1 MiB/s | 323.4 KiB | 00m00s [100/179] Installing liblastlog2-0:2.41 100% | 5.0 MiB/s | 35.9 KiB | 00m00s [101/179] Installing libfdisk-0:2.41.2- 100% | 124.2 MiB/s | 381.6 KiB | 00m00s [102/179] Installing util-linux-0:2.41. 100% | 94.1 MiB/s | 3.6 MiB | 00m00s [103/179] Installing policycoreutils-0: 100% | 25.7 MiB/s | 711.8 KiB | 00m00s [104/179] Installing selinux-policy-0:4 100% | 1.6 MiB/s | 33.5 KiB | 00m00s [105/179] Installing selinux-policy-tar 100% | 186.3 MiB/s | 14.9 MiB | 00m00s [106/179] Installing zstd-0:1.5.7-3.fc4 100% | 29.3 MiB/s | 509.8 KiB | 00m00s [107/179] Installing libxml2-0:2.12.10- 100% | 100.3 MiB/s | 1.7 MiB | 00m00s [108/179] Installing nettle-0:3.10.1-2. 100% | 258.4 MiB/s | 793.7 KiB | 00m00s [109/179] Installing gnutls-0:3.8.10-5. 100% | 349.4 MiB/s | 3.8 MiB | 00m00s [110/179] Installing bzip2-0:1.0.8-21.f 100% | 7.5 MiB/s | 99.8 KiB | 00m00s [111/179] Installing add-determinism-0: 100% | 128.0 MiB/s | 2.3 MiB | 00m00s [112/179] Installing build-reproducibil 100% | 0.0 B/s | 1.5 KiB | 00m00s [113/179] Installing cpio-0:2.15-6.fc43 100% | 68.7 MiB/s | 1.1 MiB | 00m00s [114/179] Installing lz4-libs-0:1.10.0- 100% | 158.6 MiB/s | 162.5 KiB | 00m00s [115/179] Installing libarchive-0:3.8.2 100% | 311.6 MiB/s | 957.2 KiB | 00m00s [116/179] Installing libgomp-0:15.2.1-3 100% | 265.0 MiB/s | 542.8 KiB | 00m00s [117/179] Installing libtool-ltdl-0:2.5 100% | 69.6 MiB/s | 71.2 KiB | 00m00s [118/179] Installing gdbm-libs-1:1.23-1 100% | 128.5 MiB/s | 131.6 KiB | 00m00s [119/179] Installing cyrus-sasl-lib-0:2 100% | 127.8 MiB/s | 2.3 MiB | 00m00s [120/179] Installing openldap-0:2.6.10- 100% | 216.0 MiB/s | 663.6 KiB | 00m00s [121/179] Installing gnupg2-dirmngr-0:2 100% | 27.6 MiB/s | 621.1 KiB | 00m00s [122/179] Installing gnupg2-0:2.4.8-4.f 100% | 218.4 MiB/s | 6.6 MiB | 00m00s [123/179] Installing rpm-sign-libs-0:6. 100% | 39.6 MiB/s | 40.6 KiB | 00m00s [124/179] Installing gpgverify-0:2.2-3. 100% | 0.0 B/s | 9.4 KiB | 00m00s [125/179] Installing jansson-0:2.14-3.f 100% | 88.3 MiB/s | 90.5 KiB | 00m00s [126/179] Installing libpkgconf-0:2.3.0 100% | 77.4 MiB/s | 79.2 KiB | 00m00s [127/179] Installing pkgconf-0:2.3.0-3. 100% | 6.8 MiB/s | 91.0 KiB | 00m00s [128/179] Installing pkgconf-pkg-config 100% | 147.8 KiB/s | 1.8 KiB | 00m00s [129/179] Installing ed-0:1.22.2-1.fc44 100% | 11.3 MiB/s | 150.4 KiB | 00m00s [130/179] Installing patch-0:2.8-2.fc43 100% | 16.9 MiB/s | 224.3 KiB | 00m00s [131/179] Installing xxhash-libs-0:0.8. 100% | 89.4 MiB/s | 91.6 KiB | 00m00s [132/179] Installing libnghttp2-0:1.68. 100% | 159.5 MiB/s | 163.4 KiB | 00m00s [133/179] Installing keyutils-libs-0:1. 100% | 54.4 MiB/s | 55.7 KiB | 00m00s [134/179] Installing libcom_err-0:1.47. 100% | 62.7 MiB/s | 64.2 KiB | 00m00s [135/179] Installing libverto-0:0.3.2-1 100% | 26.6 MiB/s | 27.2 KiB | 00m00s [136/179] Installing krb5-libs-0:1.21.3 100% | 287.5 MiB/s | 2.3 MiB | 00m00s [137/179] Installing libssh-0:0.11.3-1. 100% | 277.9 MiB/s | 569.2 KiB | 00m00s [138/179] Installing libbrotli-0:1.1.0- 100% | 272.0 MiB/s | 835.6 KiB | 00m00s [139/179] Installing libcurl-0:8.17.0~r 100% | 300.9 MiB/s | 924.5 KiB | 00m00s [140/179] Installing curl-0:8.17.0~rc2- 100% | 20.2 MiB/s | 476.9 KiB | 00m00s [141/179] Installing rpm-0:6.0.0-1.fc44 100% | 73.6 MiB/s | 2.6 MiB | 00m00s [142/179] Installing efi-srpm-macros-0: 100% | 40.2 MiB/s | 41.2 KiB | 00m00s [143/179] Installing java-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [144/179] Installing lua-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [145/179] Installing tree-sitter-srpm-m 100% | 0.0 B/s | 9.3 KiB | 00m00s [146/179] Installing zig-srpm-macros-0: 100% | 0.0 B/s | 1.7 KiB | 00m00s [147/179] Installing filesystem-srpm-ma 100% | 0.0 B/s | 38.9 KiB | 00m00s [148/179] Installing elfutils-default-y 100% | 340.5 KiB/s | 2.0 KiB | 00m00s [149/179] Installing elfutils-libs-0:0. 100% | 224.4 MiB/s | 689.3 KiB | 00m00s [150/179] Installing elfutils-debuginfo 100% | 6.0 MiB/s | 86.3 KiB | 00m00s [151/179] Installing elfutils-0:0.194-1 100% | 146.5 MiB/s | 2.9 MiB | 00m00s [152/179] Installing binutils-0:2.45.50 100% | 319.1 MiB/s | 27.1 MiB | 00m00s [153/179] Installing gdb-minimal-0:16.3 100% | 282.0 MiB/s | 13.3 MiB | 00m00s [154/179] Installing debugedit-0:5.2-3. 100% | 15.2 MiB/s | 217.3 KiB | 00m00s [155/179] Installing rpm-build-libs-0:6 100% | 262.9 MiB/s | 269.2 KiB | 00m00s [156/179] Installing rust-srpm-macros-0 100% | 0.0 B/s | 5.6 KiB | 00m00s [157/179] Installing qt6-srpm-macros-0: 100% | 0.0 B/s | 740.0 B | 00m00s [158/179] Installing qt5-srpm-macros-0: 100% | 0.0 B/s | 776.0 B | 00m00s [159/179] Installing perl-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [160/179] Installing package-notes-srpm 100% | 0.0 B/s | 2.0 KiB | 00m00s [161/179] Installing openblas-srpm-macr 100% | 0.0 B/s | 392.0 B | 00m00s [162/179] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.1 KiB | 00m00s [163/179] Installing kernel-srpm-macros 100% | 0.0 B/s | 2.3 KiB | 00m00s [164/179] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [165/179] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [166/179] Installing gap-srpm-macros-0: 100% | 0.0 B/s | 2.7 KiB | 00m00s [167/179] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [168/179] Installing ansible-srpm-macro 100% | 0.0 B/s | 36.2 KiB | 00m00s [169/179] Installing redhat-rpm-config- 100% | 92.5 MiB/s | 189.5 KiB | 00m00s [170/179] Installing forge-srpm-macros- 100% | 0.0 B/s | 40.3 KiB | 00m00s [171/179] Installing fonts-srpm-macros- 100% | 0.0 B/s | 57.0 KiB | 00m00s [172/179] Installing go-srpm-macros-0:3 100% | 61.6 MiB/s | 63.0 KiB | 00m00s [173/179] Installing rpm-build-0:6.0.0- 100% | 19.3 MiB/s | 296.5 KiB | 00m00s [174/179] Installing pyproject-srpm-mac 100% | 0.0 B/s | 2.5 KiB | 00m00s [175/179] Installing python-srpm-macros 100% | 10.3 MiB/s | 52.9 KiB | 00m00s [176/179] Installing rpm-plugin-selinux 100% | 0.0 B/s | 13.0 KiB | 00m00s [177/179] Installing which-0:2.23-3.fc4 100% | 6.0 MiB/s | 85.7 KiB | 00m00s [178/179] Installing shadow-utils-2:4.1 100% | 136.9 MiB/s | 4.0 MiB | 00m00s [179/179] Installing info-0:7.2-6.fc43. 100% | 45.7 KiB/s | 354.3 KiB | 00m08s Complete! Finish: installing minimal buildroot with dnf5 Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: add-determinism-0.7.2-2.fc44.x86_64 alternatives-1.33-3.fc44.x86_64 ansible-srpm-macros-1-18.1.fc43.noarch audit-libs-4.1.2-2.fc44.x86_64 bash-5.3.0-2.fc43.x86_64 binutils-2.45.50-5.fc44.x86_64 build-reproducibility-srpm-macros-0.7.2-2.fc44.noarch bzip2-1.0.8-21.fc43.x86_64 bzip2-libs-1.0.8-21.fc43.x86_64 ca-certificates-2025.2.80_v9.0.304-2.fc44.noarch coreutils-9.8-3.fc44.x86_64 coreutils-common-9.8-3.fc44.x86_64 cpio-2.15-6.fc43.x86_64 crypto-policies-20250714-5.gitcd6043a.fc44.noarch curl-8.17.0~rc2-1.fc44.x86_64 cyrus-sasl-lib-2.1.28-33.fc44.x86_64 debugedit-5.2-3.fc44.x86_64 diffutils-3.12-3.fc43.x86_64 dwz-0.16-2.fc43.x86_64 ed-1.22.2-1.fc44.x86_64 efi-srpm-macros-6-5.fc44.noarch elfutils-0.194-1.fc44.x86_64 elfutils-debuginfod-client-0.194-1.fc44.x86_64 elfutils-default-yama-scope-0.194-1.fc44.noarch elfutils-libelf-0.194-1.fc44.x86_64 elfutils-libs-0.194-1.fc44.x86_64 fedora-gpg-keys-44-0.1.noarch fedora-release-44-0.5.noarch fedora-release-common-44-0.5.noarch fedora-release-identity-basic-44-0.5.noarch fedora-repos-44-0.1.noarch fedora-repos-rawhide-44-0.1.noarch file-5.46-8.fc44.x86_64 file-libs-5.46-8.fc44.x86_64 filesystem-3.18-50.fc43.x86_64 filesystem-srpm-macros-3.18-50.fc43.noarch findutils-4.10.0-6.fc43.x86_64 fonts-srpm-macros-5.0.0-1.fc44.noarch forge-srpm-macros-0.4.0-3.fc43.noarch fpc-srpm-macros-1.3-15.fc43.noarch gap-srpm-macros-2-1.fc44.noarch gawk-5.3.2-2.fc43.x86_64 gdb-minimal-16.3-6.fc44.x86_64 gdbm-libs-1.23-10.fc43.x86_64 ghc-srpm-macros-1.9.2-3.fc43.noarch glibc-2.42.9000-7.fc44.x86_64 glibc-common-2.42.9000-7.fc44.x86_64 glibc-gconv-extra-2.42.9000-7.fc44.x86_64 glibc-minimal-langpack-2.42.9000-7.fc44.x86_64 gmp-6.3.0-4.fc44.x86_64 gnat-srpm-macros-6-8.fc43.noarch gnulib-l10n-20241231-1.fc44.noarch gnupg2-2.4.8-4.fc43.x86_64 gnupg2-dirmngr-2.4.8-4.fc43.x86_64 gnupg2-gpg-agent-2.4.8-4.fc43.x86_64 gnupg2-gpgconf-2.4.8-4.fc43.x86_64 gnupg2-keyboxd-2.4.8-4.fc43.x86_64 gnupg2-verify-2.4.8-4.fc43.x86_64 gnutls-3.8.10-5.fc44.x86_64 go-srpm-macros-3.8.0-1.fc44.noarch gpg-pubkey-36f612dcf27f7d1a48a835e4dbfcf71c6d9f90a6-6786af3b gpg-pubkey-4f50a6114cd5c6976a7f1179655a4b02f577861e-6888bc98 gpg-pubkey-c6e7f081cf80e13146676e88829b606631645531-66b6dccf gpgverify-2.2-3.fc43.noarch grep-3.12-2.fc43.x86_64 gzip-1.14-1.fc44.x86_64 ima-evm-utils-libs-1.6.2-7.fc44.x86_64 info-7.2-6.fc43.x86_64 jansson-2.14-3.fc43.x86_64 java-srpm-macros-1-7.fc43.noarch json-c-0.18-7.fc43.x86_64 kernel-srpm-macros-1.0-27.fc43.noarch keyutils-libs-1.6.3-6.fc43.x86_64 krb5-libs-1.21.3-10.fc44.x86_64 libacl-2.3.2-4.fc43.x86_64 libarchive-3.8.2-1.fc44.x86_64 libassuan-2.5.7-4.fc43.x86_64 libattr-2.5.2-6.fc43.x86_64 libblkid-2.41.2-7.fc44.x86_64 libbrotli-1.1.0-10.fc44.x86_64 libcap-2.77-1.fc44.x86_64 libcap-ng-0.8.5-8.fc44.x86_64 libcom_err-1.47.3-2.fc43.x86_64 libcurl-8.17.0~rc2-1.fc44.x86_64 libeconf-0.7.9-2.fc43.x86_64 libevent-2.1.12-16.fc43.x86_64 libfdisk-2.41.2-7.fc44.x86_64 libffi-3.5.2-1.fc44.x86_64 libfsverity-1.6-3.fc43.x86_64 libgcc-15.2.1-3.fc44.x86_64 libgcrypt-1.11.1-2.fc43.x86_64 libgomp-15.2.1-3.fc44.x86_64 libgpg-error-1.56-1.fc44.x86_64 libidn2-2.3.8-2.fc43.x86_64 libksba-1.6.7-4.fc43.x86_64 liblastlog2-2.41.2-7.fc44.x86_64 libmount-2.41.2-7.fc44.x86_64 libnghttp2-1.68.0-1.fc44.x86_64 libpkgconf-2.3.0-3.fc43.x86_64 libpsl-0.21.5-6.fc43.x86_64 libselinux-3.9-5.fc44.x86_64 libselinux-utils-3.9-5.fc44.x86_64 libsemanage-3.9-4.fc44.x86_64 libsepol-3.9-2.fc43.x86_64 libsmartcols-2.41.2-7.fc44.x86_64 libssh-0.11.3-1.fc44.x86_64 libssh-config-0.11.3-1.fc44.noarch libstdc++-15.2.1-3.fc44.x86_64 libtasn1-4.20.0-2.fc43.x86_64 libtool-ltdl-2.5.4-7.fc43.x86_64 libunistring-1.1-10.fc43.x86_64 libusb1-1.0.29-4.fc44.x86_64 libuuid-2.41.2-7.fc44.x86_64 libverto-0.3.2-11.fc43.x86_64 libxcrypt-4.4.38-9.fc44.x86_64 libxml2-2.12.10-5.fc44.x86_64 libzstd-1.5.7-3.fc44.x86_64 linkdupes-0.7.2-2.fc44.x86_64 lua-libs-5.4.8-2.fc43.x86_64 lua-srpm-macros-1-16.fc43.noarch lz4-libs-1.10.0-3.fc43.x86_64 mpfr-4.2.2-2.fc43.x86_64 ncurses-base-6.5-7.20250614.fc43.noarch ncurses-libs-6.5-7.20250614.fc43.x86_64 nettle-3.10.1-2.fc43.x86_64 npth-1.8-3.fc43.x86_64 ocaml-srpm-macros-11-2.fc43.noarch openblas-srpm-macros-2-20.fc43.noarch openldap-2.6.10-4.fc44.x86_64 openssl-libs-3.5.4-1.fc44.x86_64 p11-kit-0.25.8-1.fc44.x86_64 p11-kit-trust-0.25.8-1.fc44.x86_64 package-notes-srpm-macros-0.5-14.fc43.noarch pam-libs-1.7.1-3.fc43.x86_64 patch-2.8-2.fc43.x86_64 pcre2-10.46-1.fc44.x86_64 pcre2-syntax-10.46-1.fc44.noarch perl-srpm-macros-1-60.fc43.noarch pkgconf-2.3.0-3.fc43.x86_64 pkgconf-m4-2.3.0-3.fc43.noarch pkgconf-pkg-config-2.3.0-3.fc43.x86_64 policycoreutils-3.9-5.fc44.x86_64 popt-1.19-9.fc43.x86_64 publicsuffix-list-dafsa-20250616-2.fc43.noarch pyproject-srpm-macros-1.18.5-1.fc44.noarch python-srpm-macros-3.14-9.fc44.noarch qt5-srpm-macros-5.15.17-2.fc43.noarch qt6-srpm-macros-6.10.0-1.fc44.noarch readline-8.3-2.fc43.x86_64 redhat-rpm-config-343-14.fc44.noarch rpm-6.0.0-1.fc44.x86_64 rpm-build-6.0.0-1.fc44.x86_64 rpm-build-libs-6.0.0-1.fc44.x86_64 rpm-libs-6.0.0-1.fc44.x86_64 rpm-plugin-selinux-6.0.0-1.fc44.x86_64 rpm-sequoia-1.9.0-2.fc43.x86_64 rpm-sign-libs-6.0.0-1.fc44.x86_64 rust-srpm-macros-26.4-1.fc44.noarch sed-4.9-6.fc44.x86_64 selinux-policy-42.14-1.fc44.noarch selinux-policy-targeted-42.14-1.fc44.noarch setup-2.15.0-27.fc44.noarch shadow-utils-4.18.0-3.fc43.x86_64 sqlite-libs-3.50.4-1.fc44.x86_64 systemd-libs-258.1-2.fc44.x86_64 systemd-standalone-sysusers-258.1-2.fc44.x86_64 tar-1.35-6.fc43.x86_64 tpm2-tss-4.1.3-8.fc43.x86_64 tree-sitter-srpm-macros-0.4.2-1.fc43.noarch unzip-6.0-68.fc44.x86_64 util-linux-2.41.2-7.fc44.x86_64 util-linux-core-2.41.2-7.fc44.x86_64 which-2.23-3.fc43.x86_64 xxhash-libs-0.8.3-3.fc43.x86_64 xz-5.8.1-2.fc43.x86_64 xz-libs-5.8.1-2.fc43.x86_64 zig-srpm-macros-1-5.fc43.noarch zip-3.0-44.fc43.x86_64 zlib-ng-compat-2.2.5-2.fc44.x86_64 zstd-1.5.7-3.fc44.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762128000 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.0-1.fc44.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1762193922.659918/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-8dhthehy/python-cheroot/python-cheroot.spec) Config(child) 0 minutes 30 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/python-cheroot-11.1.0-1.fc44.src.rpm) Config(fedora-rawhide-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1762193922.659918/root. INFO: reusing tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1762193922.659918/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1762193922.659918/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-6.0.0-1.fc44.x86_64 rpm-sequoia-1.9.0-2.fc43.x86_64 dnf5-5.2.17.0-2.fc44.x86_64 dnf5-plugins-5.2.17.0-2.fc44.x86_64 Finish: chroot init Start: build phase for python-cheroot-11.1.0-1.fc44.src.rpm Start: build setup for python-cheroot-11.1.0-1.fc44.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762128000 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.0-1.fc44.src.rpm Updating and loading repositories: Copr repository 100% | 12.3 KiB/s | 1.6 KiB | 00m00s fedora 100% | 73.1 KiB/s | 29.1 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: pyproject-rpm-macros noarch 1.18.5-1.fc44 fedora 115.0 KiB python3-devel x86_64 3.14.0-2.fc44 fedora 1.9 MiB python3-docutils noarch 0.21.2-6.fc44 fedora 5.0 MiB python3-jaraco-functools noarch 4.3.0-1.fc44 fedora 75.1 KiB python3-jaraco-packaging noarch 10.2.3-6.fc44 fedora 28.8 KiB python3-jaraco-text noarch 4.0.0-7.fc44 fedora 56.7 KiB python3-portend noarch 3.2.1-1.fc44 fedora 24.8 KiB python3-pyOpenSSL noarch 25.1.0-5.fc44 fedora 746.9 KiB python3-pytest noarch 8.3.5-10.fc44 fedora 21.6 MiB python3-pytest-forked noarch 1.6.0-13.fc44 fedora 20.6 KiB python3-pytest-mock noarch 3.14.1-4.fc44 fedora 128.8 KiB python3-pytest-rerunfailures noarch 15.0-6.fc44 fedora 84.9 KiB python3-requests noarch 2.32.5-2.fc44 fedora 476.9 KiB python3-requests-toolbelt noarch 1.0.0-14.fc44 fedora 299.4 KiB python3-requests-unixsocket noarch 0.4.1-1.fc44 fedora 49.5 KiB python3-rst-linker noarch 2.4.0-16.fc44 fedora 23.7 KiB python3-sphinx noarch 1:8.2.3-16.fc44 fedora 12.3 MiB python3-sphinx-tabs noarch 3.4.7-6.fc44 fedora 53.9 KiB python3-sphinx-theme-alabaster noarch 0.7.16-11.fc44 fedora 42.0 KiB python3-sphinxcontrib-apidoc noarch 0.6.0-6.fc44 fedora 35.0 KiB python3-trustme noarch 1.2.0-6.fc44 fedora 74.8 KiB Installing dependencies: expat x86_64 2.7.2-1.fc44 fedora 298.6 KiB git-core x86_64 2.51.1-1.fc44 fedora 23.6 MiB less x86_64 685-1.fc44 fedora 413.4 KiB libcbor x86_64 0.12.0-6.fc43 fedora 77.8 KiB libedit x86_64 3.1-57.20251016cvs.fc44 fedora 240.2 KiB libfido2 x86_64 1.16.0-3.fc43 fedora 238.5 KiB mpdecimal x86_64 4.0.1-2.fc43 fedora 217.2 KiB openssh x86_64 10.0p1-7.fc44 fedora 1.4 MiB openssh-clients x86_64 10.0p1-7.fc44 fedora 2.6 MiB python-pip-wheel noarch 25.2-4.fc44 fedora 1.2 MiB python-rpm-macros noarch 3.14-9.fc44 fedora 27.6 KiB python-setuptools-wheel noarch 78.1.1-15.fc44 fedora 1.1 MiB python3 x86_64 3.14.0-2.fc44 fedora 28.9 KiB python3-autocommand noarch 2.2.2-14.fc44 fedora 86.4 KiB python3-babel noarch 2.17.0-6.fc44 fedora 30.3 MiB python3-build noarch 1.3.0-4.fc44 fedora 150.7 KiB python3-build+virtualenv noarch 1.3.0-4.fc44 fedora 6.8 KiB python3-cffi x86_64 2.0.0-2.fc44 fedora 1.4 MiB python3-charset-normalizer noarch 3.4.4-1.fc44 fedora 356.2 KiB python3-cryptography x86_64 45.0.4-5.fc44 fedora 5.4 MiB python3-dateutil noarch 1:2.9.0.post0-6.fc44 fedora 877.5 KiB python3-distlib noarch 0.4.0-2.fc44 fedora 1.2 MiB python3-domdf-python-tools noarch 3.9.0-8.fc44 fedora 662.0 KiB python3-filelock noarch 3.15.4-10.fc44 fedora 97.0 KiB python3-idna noarch 3.11-1.fc44 fedora 738.4 KiB python3-imagesize noarch 1.4.1-14.fc44 fedora 36.0 KiB python3-iniconfig noarch 2.1.0-3.fc44 fedora 42.4 KiB python3-jaraco-context noarch 6.0.1-9.fc44 fedora 34.8 KiB python3-jinja2 noarch 3.1.6-6.fc44 fedora 3.1 MiB python3-libs x86_64 3.14.0-2.fc44 fedora 43.0 MiB python3-markupsafe x86_64 3.0.2-6.fc44 fedora 61.5 KiB python3-more-itertools noarch 10.5.0-7.fc44 fedora 664.1 KiB python3-natsort noarch 8.4.0-8.fc44 fedora 264.4 KiB python3-packaging noarch 25.0-7.fc44 fedora 607.4 KiB python3-pbr noarch 7.0.1-2.fc44 fedora 675.2 KiB python3-platformdirs noarch 4.4.0-2.fc44 fedora 182.4 KiB python3-pluggy noarch 1.6.0-4.fc44 fedora 211.0 KiB python3-ply noarch 3.11-30.fc44 fedora 575.2 KiB python3-py noarch 1.11.0-19.fc44 fedora 986.2 KiB python3-pycparser noarch 2.22-5.fc44 fedora 1.5 MiB python3-pygments noarch 2.19.1-6.fc44 fedora 11.3 MiB python3-pyproject-hooks noarch 1.2.0-7.fc44 fedora 69.1 KiB python3-roman-numerals-py noarch 3.1.0-5.fc44 fedora 40.4 KiB python3-rpm-generators noarch 14-13.fc43 fedora 81.7 KiB python3-rpm-macros noarch 3.14-9.fc44 fedora 6.5 KiB python3-setuptools noarch 78.1.1-15.fc44 fedora 9.0 MiB python3-six noarch 1.17.0-7.fc44 fedora 118.0 KiB python3-snowballstemmer noarch 3.0.1-8.fc44 fedora 1.8 MiB python3-tempora noarch 5.8.0-4.fc44 fedora 93.4 KiB python3-typing-extensions noarch 4.15.0-2.fc44 fedora 538.4 KiB python3-urllib3 noarch 2.5.0-3.fc44 fedora 1.1 MiB python3-virtualenv noarch 20.35.4-2.fc44 fedora 709.4 KiB tzdata noarch 2025b-3.fc43 fedora 1.6 MiB Transaction Summary: Installing: 74 packages Total size of inbound packages is 45 MiB. Need to download 45 MiB. After this operation, 194 MiB extra will be used (install 194 MiB, remove 0 B). [ 1/74] pyproject-rpm-macros-0:1.18.5-1 100% | 233.7 KiB/s | 44.4 KiB | 00m00s [ 2/74] python3-pyOpenSSL-0:25.1.0-5.fc 100% | 528.9 KiB/s | 129.1 KiB | 00m00s [ 3/74] python3-sphinx-tabs-0:3.4.7-6.f 100% | 521.7 KiB/s | 28.7 KiB | 00m00s [ 4/74] python3-sphinx-theme-alabaster- 100% | 581.1 KiB/s | 24.4 KiB | 00m00s [ 5/74] python3-sphinxcontrib-apidoc-0: 100% | 402.8 KiB/s | 20.1 KiB | 00m00s [ 6/74] python3-jaraco-functools-0:4.3. 100% | 481.6 KiB/s | 25.5 KiB | 00m00s [ 7/74] python3-devel-0:3.14.0-2.fc44.x 100% | 1.2 MiB/s | 434.9 KiB | 00m00s [ 8/74] python3-jaraco-text-0:4.0.0-7.f 100% | 838.1 KiB/s | 35.2 KiB | 00m00s [ 9/74] python3-jaraco-packaging-0:10.2 100% | 443.1 KiB/s | 23.0 KiB | 00m00s [10/74] python3-portend-0:3.2.1-1.fc44. 100% | 449.9 KiB/s | 18.4 KiB | 00m00s [11/74] python3-pytest-forked-0:1.6.0-1 100% | 442.2 KiB/s | 18.1 KiB | 00m00s [12/74] python3-docutils-0:0.21.2-6.fc4 100% | 5.1 MiB/s | 1.1 MiB | 00m00s [13/74] python3-pytest-mock-0:3.14.1-4. 100% | 1.0 MiB/s | 43.1 KiB | 00m00s [14/74] python3-pytest-rerunfailures-0: 100% | 848.3 KiB/s | 32.2 KiB | 00m00s [15/74] python3-requests-0:2.32.5-2.fc4 100% | 3.0 MiB/s | 160.4 KiB | 00m00s [16/74] python3-requests-toolbelt-0:1.0 100% | 2.8 MiB/s | 118.6 KiB | 00m00s [17/74] python3-requests-unixsocket-0:0 100% | 659.3 KiB/s | 27.0 KiB | 00m00s [18/74] python3-rst-linker-0:2.4.0-16.f 100% | 526.4 KiB/s | 20.0 KiB | 00m00s [19/74] python3-trustme-0:1.2.0-6.fc44. 100% | 945.6 KiB/s | 35.9 KiB | 00m00s [20/74] python-rpm-macros-0:3.14-9.fc44 100% | 503.0 KiB/s | 19.6 KiB | 00m00s [21/74] python3-rpm-macros-0:3.14-9.fc4 100% | 311.9 KiB/s | 12.2 KiB | 00m00s [22/74] python3-pytest-0:8.3.5-10.fc44. 100% | 6.2 MiB/s | 2.2 MiB | 00m00s [23/74] python3-dateutil-1:2.9.0.post0- 100% | 7.5 MiB/s | 344.2 KiB | 00m00s [24/74] python3-sphinx-1:8.2.3-16.fc44. 100% | 12.7 MiB/s | 2.9 MiB | 00m00s [25/74] expat-0:2.7.2-1.fc44.x86_64 100% | 2.8 MiB/s | 119.0 KiB | 00m00s [26/74] mpdecimal-0:4.0.1-2.fc43.x86_64 100% | 2.4 MiB/s | 97.1 KiB | 00m00s [27/74] tzdata-0:2025b-3.fc43.noarch 100% | 13.9 MiB/s | 713.9 KiB | 00m00s [28/74] python3-0:3.14.0-2.fc44.x86_64 100% | 710.0 KiB/s | 27.7 KiB | 00m00s [29/74] python3-cryptography-0:45.0.4-5 100% | 25.5 MiB/s | 1.5 MiB | 00m00s [30/74] python3-idna-0:3.11-1.fc44.noar 100% | 3.0 MiB/s | 124.8 KiB | 00m00s [31/74] python3-libs-0:3.14.0-2.fc44.x8 100% | 37.9 MiB/s | 9.8 MiB | 00m00s [32/74] python3-pbr-0:7.0.1-2.fc44.noar 100% | 5.3 MiB/s | 226.4 KiB | 00m00s [33/74] less-0:685-1.fc44.x86_64 100% | 4.9 MiB/s | 199.3 KiB | 00m00s [34/74] openssh-clients-0:10.0p1-7.fc44 100% | 14.6 MiB/s | 746.8 KiB | 00m00s [35/74] libedit-0:3.1-57.20251016cvs.fc 100% | 2.6 MiB/s | 105.0 KiB | 00m00s [36/74] libfido2-0:1.16.0-3.fc43.x86_64 100% | 2.3 MiB/s | 98.5 KiB | 00m00s [37/74] openssh-0:10.0p1-7.fc44.x86_64 100% | 7.9 MiB/s | 338.9 KiB | 00m00s [38/74] git-core-0:2.51.1-1.fc44.x86_64 100% | 29.6 MiB/s | 5.0 MiB | 00m00s [39/74] libcbor-0:0.12.0-6.fc43.x86_64 100% | 744.7 KiB/s | 33.5 KiB | 00m00s [40/74] python3-pygments-0:2.19.1-6.fc4 100% | 47.7 MiB/s | 2.7 MiB | 00m00s [41/74] python3-imagesize-0:1.4.1-14.fc 100% | 322.5 KiB/s | 21.9 KiB | 00m00s [42/74] python3-jinja2-0:3.1.6-6.fc44.n 100% | 12.0 MiB/s | 515.8 KiB | 00m00s [43/74] python3-babel-0:2.17.0-6.fc44.n 100% | 66.6 MiB/s | 6.9 MiB | 00m00s [44/74] python3-packaging-0:25.0-7.fc44 100% | 3.8 MiB/s | 161.4 KiB | 00m00s [45/74] python3-roman-numerals-py-0:3.1 100% | 518.0 KiB/s | 20.2 KiB | 00m00s [46/74] python3-snowballstemmer-0:3.0.1 100% | 6.7 MiB/s | 280.7 KiB | 00m00s [47/74] python3-six-0:1.17.0-7.fc44.noa 100% | 1.0 MiB/s | 41.8 KiB | 00m00s [48/74] python3-urllib3-0:2.5.0-3.fc44. 100% | 7.3 MiB/s | 297.4 KiB | 00m00s [49/74] python3-charset-normalizer-0:3. 100% | 2.9 MiB/s | 117.4 KiB | 00m00s [50/74] python3-py-0:1.11.0-19.fc44.noa 100% | 6.0 MiB/s | 265.9 KiB | 00m00s [51/74] python3-iniconfig-0:2.1.0-3.fc4 100% | 586.3 KiB/s | 22.9 KiB | 00m00s [52/74] python3-pluggy-0:1.6.0-4.fc44.n 100% | 1.5 MiB/s | 61.6 KiB | 00m00s [53/74] python3-tempora-0:5.8.0-4.fc44. 100% | 1.0 MiB/s | 39.3 KiB | 00m00s [54/74] python3-setuptools-0:78.1.1-15. 100% | 30.7 MiB/s | 2.1 MiB | 00m00s [55/74] python-pip-wheel-0:25.2-4.fc44. 100% | 25.2 MiB/s | 1.1 MiB | 00m00s [56/74] python3-markupsafe-0:3.0.2-6.fc 100% | 811.9 KiB/s | 31.7 KiB | 00m00s [57/74] python3-autocommand-0:2.2.2-14. 100% | 935.9 KiB/s | 37.4 KiB | 00m00s [58/74] python3-jaraco-context-0:6.0.1- 100% | 587.9 KiB/s | 22.3 KiB | 00m00s [59/74] python3-more-itertools-0:10.5.0 100% | 3.0 MiB/s | 120.4 KiB | 00m00s [60/74] python3-build-0:1.3.0-4.fc44.no 100% | 1.7 MiB/s | 70.9 KiB | 00m00s [61/74] python3-build+virtualenv-0:1.3. 100% | 255.1 KiB/s | 9.7 KiB | 00m00s [62/74] python3-domdf-python-tools-0:3. 100% | 5.1 MiB/s | 208.7 KiB | 00m00s [63/74] python3-natsort-0:8.4.0-8.fc44. 100% | 2.0 MiB/s | 82.3 KiB | 00m00s [64/74] python3-typing-extensions-0:4.1 100% | 2.8 MiB/s | 112.3 KiB | 00m00s [65/74] python3-cffi-0:2.0.0-2.fc44.x86 100% | 7.7 MiB/s | 321.4 KiB | 00m00s [66/74] python3-pycparser-0:2.22-5.fc44 100% | 6.5 MiB/s | 274.4 KiB | 00m00s [67/74] python3-pyproject-hooks-0:1.2.0 100% | 744.0 KiB/s | 31.2 KiB | 00m00s [68/74] python3-virtualenv-0:20.35.4-2. 100% | 7.3 MiB/s | 307.0 KiB | 00m00s [69/74] python3-distlib-0:0.4.0-2.fc44. 100% | 6.6 MiB/s | 270.9 KiB | 00m00s [70/74] python3-filelock-0:3.15.4-10.fc 100% | 1.1 MiB/s | 44.9 KiB | 00m00s [71/74] python3-platformdirs-0:4.4.0-2. 100% | 1.2 MiB/s | 49.5 KiB | 00m00s [72/74] python-setuptools-wheel-0:78.1. 100% | 23.6 MiB/s | 1.1 MiB | 00m00s [73/74] python3-ply-0:3.11-30.fc44.noar 100% | 2.9 MiB/s | 136.8 KiB | 00m00s [74/74] python3-rpm-generators-0:14-13. 100% | 751.0 KiB/s | 28.5 KiB | 00m00s -------------------------------------------------------------------------------- [74/74] Total 100% | 26.8 MiB/s | 44.7 MiB | 00m02s Running transaction [ 1/76] Verify package files 100% | 440.0 B/s | 74.0 B | 00m00s [ 2/76] Prepare transaction 100% | 1.1 KiB/s | 74.0 B | 00m00s [ 3/76] Installing python-rpm-macros-0: 100% | 27.8 MiB/s | 28.5 KiB | 00m00s [ 4/76] Installing python3-rpm-macros-0 100% | 0.0 B/s | 6.8 KiB | 00m00s [ 5/76] Installing python-pip-wheel-0:2 100% | 236.0 MiB/s | 1.2 MiB | 00m00s [ 6/76] Installing tzdata-0:2025b-3.fc4 100% | 63.1 MiB/s | 1.9 MiB | 00m00s [ 7/76] Installing expat-0:2.7.2-1.fc44 100% | 19.6 MiB/s | 300.7 KiB | 00m00s [ 8/76] Installing pyproject-rpm-macros 100% | 114.3 MiB/s | 117.0 KiB | 00m00s [ 9/76] Installing python-setuptools-wh 100% | 574.2 MiB/s | 1.1 MiB | 00m00s [10/76] Installing libcbor-0:0.12.0-6.f 100% | 77.3 MiB/s | 79.2 KiB | 00m00s [11/76] Installing libfido2-0:1.16.0-3. 100% | 234.4 MiB/s | 240.0 KiB | 00m00s [12/76] Installing openssh-0:10.0p1-7.f 100% | 87.0 MiB/s | 1.4 MiB | 00m00s [13/76] Installing libedit-0:3.1-57.202 100% | 236.2 MiB/s | 241.8 KiB | 00m00s [14/76] Installing openssh-clients-0:10 100% | 104.5 MiB/s | 2.6 MiB | 00m00s [15/76] Installing less-0:685-1.fc44.x8 100% | 29.1 MiB/s | 416.8 KiB | 00m00s [16/76] Installing git-core-0:2.51.1-1. 100% | 358.8 MiB/s | 23.7 MiB | 00m00s [17/76] Installing mpdecimal-0:4.0.1-2. 100% | 35.6 MiB/s | 218.8 KiB | 00m00s [18/76] Installing python3-libs-0:3.14. 100% | 338.7 MiB/s | 43.3 MiB | 00m00s [19/76] Installing python3-0:3.14.0-2.f 100% | 2.3 MiB/s | 30.6 KiB | 00m00s [20/76] Installing python3-packaging-0: 100% | 201.8 MiB/s | 619.9 KiB | 00m00s [21/76] Installing python3-idna-0:3.11- 100% | 242.5 MiB/s | 744.9 KiB | 00m00s [22/76] Installing python3-urllib3-0:2. 100% | 185.2 MiB/s | 1.1 MiB | 00m00s [23/76] Installing python3-docutils-0:0 100% | 148.9 MiB/s | 5.1 MiB | 00m00s [24/76] Installing python3-pygments-0:2 100% | 220.9 MiB/s | 11.5 MiB | 00m00s [25/76] Installing python3-six-0:1.17.0 100% | 117.5 MiB/s | 120.3 KiB | 00m00s [26/76] Installing python3-dateutil-1:2 100% | 145.0 MiB/s | 891.1 KiB | 00m00s [27/76] Installing python3-setuptools-0 100% | 242.6 MiB/s | 9.2 MiB | 00m00s [28/76] Installing python3-jaraco-conte 100% | 37.3 MiB/s | 38.2 KiB | 00m00s [29/76] Installing python3-more-itertoo 100% | 326.3 MiB/s | 668.4 KiB | 00m00s [30/76] Installing python3-jaraco-funct 100% | 76.4 MiB/s | 78.2 KiB | 00m00s [31/76] Installing python3-tempora-0:5. 100% | 6.8 MiB/s | 97.9 KiB | 00m00s [32/76] Installing python3-pbr-0:7.0.1- 100% | 38.9 MiB/s | 716.9 KiB | 00m00s [33/76] Installing python3-py-0:1.11.0- 100% | 197.7 MiB/s | 1.0 MiB | 00m00s [34/76] Installing python3-rpm-generato 100% | 0.0 B/s | 82.9 KiB | 00m00s [35/76] Installing python3-sphinx-theme 100% | 11.4 MiB/s | 46.6 KiB | 00m00s [36/76] Installing python3-babel-0:2.17 100% | 338.9 MiB/s | 30.5 MiB | 00m00s [37/76] Installing python3-imagesize-0: 100% | 38.2 MiB/s | 39.1 KiB | 00m00s [38/76] Installing python3-roman-numera 100% | 42.4 MiB/s | 43.4 KiB | 00m00s [39/76] Installing python3-snowballstem 100% | 309.9 MiB/s | 1.9 MiB | 00m00s [40/76] Installing python3-charset-norm 100% | 23.9 MiB/s | 366.4 KiB | 00m00s [41/76] Installing python3-requests-0:2 100% | 159.1 MiB/s | 488.9 KiB | 00m00s [42/76] Installing python3-iniconfig-0: 100% | 45.4 MiB/s | 46.5 KiB | 00m00s [43/76] Installing python3-pluggy-0:1.6 100% | 70.8 MiB/s | 217.5 KiB | 00m00s [44/76] Installing python3-pytest-0:8.3 100% | 357.3 MiB/s | 21.8 MiB | 00m00s [45/76] Installing python3-markupsafe-0 100% | 32.1 MiB/s | 65.8 KiB | 00m00s [46/76] Installing python3-jinja2-0:3.1 100% | 309.2 MiB/s | 3.1 MiB | 00m00s [47/76] Installing python3-sphinx-1:8.2 100% | 201.0 MiB/s | 12.5 MiB | 00m00s [48/76] Installing python3-autocommand- 100% | 89.9 MiB/s | 92.1 KiB | 00m00s [49/76] Installing python3-natsort-0:8. 100% | 19.1 MiB/s | 273.4 KiB | 00m00s [50/76] Installing python3-typing-exten 100% | 264.0 MiB/s | 540.7 KiB | 00m00s [51/76] Installing python3-domdf-python 100% | 166.2 MiB/s | 680.8 KiB | 00m00s [52/76] Installing python3-pyproject-ho 100% | 72.5 MiB/s | 74.2 KiB | 00m00s [53/76] Installing python3-build-0:1.3. 100% | 11.2 MiB/s | 160.6 KiB | 00m00s [54/76] Installing python3-distlib-0:0. 100% | 399.3 MiB/s | 1.2 MiB | 00m00s [55/76] Installing python3-filelock-0:3 100% | 101.4 MiB/s | 103.9 KiB | 00m00s [56/76] Installing python3-platformdirs 100% | 92.2 MiB/s | 188.8 KiB | 00m00s [57/76] Installing python3-virtualenv-0 100% | 36.2 MiB/s | 779.2 KiB | 00m00s [58/76] Installing python3-build+virtua 100% | 0.0 B/s | 124.0 B | 00m00s [59/76] Installing python3-ply-0:3.11-3 100% | 283.4 MiB/s | 580.4 KiB | 00m00s [60/76] Installing python3-pycparser-0: 100% | 301.0 MiB/s | 1.5 MiB | 00m00s [61/76] Installing python3-cffi-0:2.0.0 100% | 273.8 MiB/s | 1.4 MiB | 00m00s [62/76] Installing python3-cryptography 100% | 259.6 MiB/s | 5.5 MiB | 00m00s [63/76] Installing python3-pyOpenSSL-0: 100% | 367.7 MiB/s | 753.1 KiB | 00m00s [64/76] Installing python3-trustme-0:1. 100% | 77.4 MiB/s | 79.3 KiB | 00m00s [65/76] Installing python3-jaraco-packa 100% | 33.1 MiB/s | 33.9 KiB | 00m00s [66/76] Installing python3-jaraco-text- 100% | 61.3 MiB/s | 62.7 KiB | 00m00s [67/76] Installing python3-sphinx-tabs- 100% | 56.6 MiB/s | 58.0 KiB | 00m00s [68/76] Installing python3-sphinxcontri 100% | 38.1 MiB/s | 39.0 KiB | 00m00s [69/76] Installing python3-pytest-forke 100% | 23.2 MiB/s | 23.8 KiB | 00m00s [70/76] Installing python3-pytest-mock- 100% | 130.7 MiB/s | 133.9 KiB | 00m00s [71/76] Installing python3-pytest-rerun 100% | 85.5 MiB/s | 87.6 KiB | 00m00s [72/76] Installing python3-requests-too 100% | 105.5 MiB/s | 324.0 KiB | 00m00s [73/76] Installing python3-requests-uni 100% | 26.6 MiB/s | 54.4 KiB | 00m00s [74/76] Installing python3-devel-0:3.14 100% | 90.5 MiB/s | 2.0 MiB | 00m00s [75/76] Installing python3-portend-0:3. 100% | 26.7 MiB/s | 27.3 KiB | 00m00s [76/76] Installing python3-rst-linker-0 100% | 752.0 KiB/s | 27.1 KiB | 00m00s Complete! Finish: build setup for python-cheroot-11.1.0-1.fc44.src.rpm Start: rpmbuild python-cheroot-11.1.0-1.fc44.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762128000 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.YGcGRg Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Crj3Rg + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + rm -rf cheroot-11.1.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/cheroot-11.1.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd cheroot-11.1.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + sed -i 's/ --numprocesses=auto//' pytest.ini + sed -i -e /pytest_cov/d -e /--cov/d -e /--no-cov-on-fail/d pytest.ini + sed -i /setuptools_scm_git_archive/d setup.cfg + sed -i 's/setuptools_scm >= 7.0.0/setuptools_scm >= 6.0.0/' setup.cfg + rm -rf bin/ + sed -i /sphinxcontrib.towncrier.ext/d docs/conf.py + sed -i /spelling_stub_ext/d docs/conf.py + sed -i /jaraco.packaging.sphinx/d docs/conf.py + sed -i 's/html_theme = '\''furo'\''/html_theme = '\''alabaster'\''/' docs/conf.py + sed -i /pypytools/d cheroot/test/test_server.py + sed -i '/getfixturevalue('\''_garbage_bin'\'')/d' cheroot/test/test_server.py + sed -i /jaraco.context/d cheroot/test/test_wsgi.py + sed -i '39 i @pytest.mark.skip()' cheroot/test/test_wsgi.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.nZwaRF + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd cheroot-11.1.0 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + RPM_TOXENV=py314 + FEDORA=44 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir --output /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-buildrequires Handling setuptools >= 61.2 from build-system.requires Requirement satisfied: setuptools >= 61.2 (installed: setuptools 78.1.1) Handling setuptools-scm >= 7.0.0 from build-system.requires Requirement not satisfied: setuptools-scm >= 7.0.0 Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.0-1.fc44.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Copr repository 100% | 8.2 KiB/s | 1.6 KiB | 00m00s fedora 100% | 115.9 KiB/s | 29.1 KiB | 00m00s Repositories loaded. Package "pyproject-rpm-macros-1.18.5-1.fc44.noarch" is already installed. Package "python3-devel-3.14.0-2.fc44.x86_64" is already installed. Package "python3-pyOpenSSL-25.1.0-5.fc44.noarch" is already installed. Package "python3-sphinx-tabs-3.4.7-6.fc44.noarch" is already installed. Package "python3-sphinx-theme-alabaster-0.7.16-11.fc44.noarch" is already installed. Package "python3-sphinxcontrib-apidoc-0.6.0-6.fc44.noarch" is already installed. Package "python3-docutils-0.21.2-6.fc44.noarch" is already installed. Package "python3-jaraco-functools-4.3.0-1.fc44.noarch" is already installed. Package "python3-jaraco-packaging-10.2.3-6.fc44.noarch" is already installed. Package "python3-jaraco-text-4.0.0-7.fc44.noarch" is already installed. Package "python3-packaging-25.0-7.fc44.noarch" is already installed. Package "python3-portend-3.2.1-1.fc44.noarch" is already installed. Package "python3-pytest-8.3.5-10.fc44.noarch" is already installed. Package "python3-pytest-forked-1.6.0-13.fc44.noarch" is already installed. Package "python3-pytest-mock-3.14.1-4.fc44.noarch" is already installed. Package "python3-pytest-rerunfailures-15.0-6.fc44.noarch" is already installed. Package "python3-requests-2.32.5-2.fc44.noarch" is already installed. Package "python3-requests-toolbelt-1.0.0-14.fc44.noarch" is already installed. Package "python3-requests-unixsocket-0.4.1-1.fc44.noarch" is already installed. Package "python3-rst-linker-2.4.0-16.fc44.noarch" is already installed. Package "python3-setuptools-78.1.1-15.fc44.noarch" is already installed. Package "python3-sphinx-1:8.2.3-16.fc44.noarch" is already installed. Package "python3-trustme-1.2.0-6.fc44.noarch" is already installed. Total size of inbound packages is 3 MiB. Need to download 3 MiB. Package Arch Version Repository Size Installing: python3-pip noarch 25.2-4.fc44 fedora 11.3 MiB python3-setuptools_scm noarch 8.3.1-8.fc44 fedora 354.5 KiB Transaction Summary: Installing: 2 packages After this operation, 12 MiB extra will be used (install 12 MiB, remove 0 B). [1/2] python3-pip-0:25.2-4.fc44.noarch 100% | 3.6 MiB/s | 2.6 MiB | 00m01s [2/2] python3-setuptools_scm-0:8.3.1-8. 100% | 137.7 KiB/s | 121.6 KiB | 00m01s -------------------------------------------------------------------------------- [2/2] Total 100% | 3.1 MiB/s | 2.7 MiB | 00m01s Running transaction [1/4] Verify package files 100% | 200.0 B/s | 2.0 B | 00m00s [2/4] Prepare transaction 100% | 83.0 B/s | 2.0 B | 00m00s [3/4] Installing python3-setuptools_scm 100% | 60.9 MiB/s | 374.4 KiB | 00m00s [4/4] Installing python3-pip-0:25.2-4.f 100% | 142.3 MiB/s | 11.5 MiB | 00m00s Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762128000 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.NTOmcE + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd cheroot-11.1.0 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + RPM_TOXENV=py314 + FEDORA=44 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir --output /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-buildrequires Handling setuptools >= 61.2 from build-system.requires Requirement satisfied: setuptools >= 61.2 (installed: setuptools 78.1.1) Handling setuptools-scm >= 7.0.0 from build-system.requires Requirement satisfied: setuptools-scm >= 7.0.0 (installed: setuptools-scm 8.3.1) /usr/lib/python3.14/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.14/site-packages/setuptools_scm/git.py:328: UserWarning: unprocessed git archival found (no export subst applied) warnings.warn("unprocessed git archival found (no export subst applied)") /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info writing cheroot.egg-info/PKG-INFO writing dependency_links to cheroot.egg-info/dependency_links.txt writing entry points to cheroot.egg-info/entry_points.txt writing requirements to cheroot.egg-info/requires.txt writing top-level names to cheroot.egg-info/top_level.txt ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any reading manifest file 'cheroot.egg-info/SOURCES.txt' adding license file 'LICENSE.md' writing manifest file 'cheroot.egg-info/SOURCES.txt' /usr/lib/python3.14/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.14/site-packages/setuptools_scm/git.py:328: UserWarning: unprocessed git archival found (no export subst applied) warnings.warn("unprocessed git archival found (no export subst applied)") /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info writing cheroot.egg-info/PKG-INFO writing dependency_links to cheroot.egg-info/dependency_links.txt writing entry points to cheroot.egg-info/entry_points.txt writing requirements to cheroot.egg-info/requires.txt writing top-level names to cheroot.egg-info/top_level.txt ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any reading manifest file 'cheroot.egg-info/SOURCES.txt' adding license file 'LICENSE.md' writing manifest file 'cheroot.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot-11.1.0.dist-info' Handling more_itertools>=2.6 from hook generated metadata: Requires-Dist (cheroot) Requirement satisfied: more_itertools>=2.6 (installed: more_itertools 10.5.0) Handling jaraco.functools from hook generated metadata: Requires-Dist (cheroot) Requirement satisfied: jaraco.functools (installed: jaraco.functools 4.3.0) Handling sphinx>=1.8.2; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: sphinx>=1.8.2; extra == "docs" Handling jaraco.packaging>=3.2; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: jaraco.packaging>=3.2; extra == "docs" Handling sphinx-tabs>=1.1.0; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: sphinx-tabs>=1.1.0; extra == "docs" Handling furo; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: furo; extra == "docs" Handling python-dateutil; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: python-dateutil; extra == "docs" Handling sphinxcontrib-apidoc>=0.3.0; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: sphinxcontrib-apidoc>=0.3.0; extra == "docs" + cat /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-buildrequires + rm -rfv cheroot-11.1.0.dist-info/ removed 'cheroot-11.1.0.dist-info/licenses/LICENSE.md' removed directory 'cheroot-11.1.0.dist-info/licenses' removed 'cheroot-11.1.0.dist-info/METADATA' removed 'cheroot-11.1.0.dist-info/entry_points.txt' removed 'cheroot-11.1.0.dist-info/top_level.txt' removed directory 'cheroot-11.1.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.0-1.fc44.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Copr repository 100% | 13.7 KiB/s | 1.6 KiB | 00m00s fedora 100% | 73.5 KiB/s | 29.1 KiB | 00m00s Repositories loaded. Nothing to do. Package "pyproject-rpm-macros-1.18.5-1.fc44.noarch" is already installed. Package "python3-devel-3.14.0-2.fc44.x86_64" is already installed. Package "python3-pyOpenSSL-25.1.0-5.fc44.noarch" is already installed. Package "python3-sphinx-tabs-3.4.7-6.fc44.noarch" is already installed. Package "python3-sphinx-theme-alabaster-0.7.16-11.fc44.noarch" is already installed. Package "python3-sphinxcontrib-apidoc-0.6.0-6.fc44.noarch" is already installed. Package "python3-docutils-0.21.2-6.fc44.noarch" is already installed. Package "python3-jaraco-functools-4.3.0-1.fc44.noarch" is already installed. Package "python3-jaraco-packaging-10.2.3-6.fc44.noarch" is already installed. Package "python3-jaraco-text-4.0.0-7.fc44.noarch" is already installed. Package "python3-more-itertools-10.5.0-7.fc44.noarch" is already installed. Package "python3-packaging-25.0-7.fc44.noarch" is already installed. Package "python3-pip-25.2-4.fc44.noarch" is already installed. Package "python3-portend-3.2.1-1.fc44.noarch" is already installed. Package "python3-pytest-8.3.5-10.fc44.noarch" is already installed. Package "python3-pytest-forked-1.6.0-13.fc44.noarch" is already installed. Package "python3-pytest-mock-3.14.1-4.fc44.noarch" is already installed. Package "python3-pytest-rerunfailures-15.0-6.fc44.noarch" is already installed. Package "python3-requests-2.32.5-2.fc44.noarch" is already installed. Package "python3-requests-toolbelt-1.0.0-14.fc44.noarch" is already installed. Package "python3-requests-unixsocket-0.4.1-1.fc44.noarch" is already installed. Package "python3-rst-linker-2.4.0-16.fc44.noarch" is already installed. Package "python3-setuptools-78.1.1-15.fc44.noarch" is already installed. Package "python3-setuptools_scm-8.3.1-8.fc44.noarch" is already installed. Package "python3-sphinx-1:8.2.3-16.fc44.noarch" is already installed. Package "python3-trustme-1.2.0-6.fc44.noarch" is already installed. Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762128000 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.OO6U0e + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd cheroot-11.1.0 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + RPM_TOXENV=py314 + FEDORA=44 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir --output /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-buildrequires Handling setuptools >= 61.2 from build-system.requires Requirement satisfied: setuptools >= 61.2 (installed: setuptools 78.1.1) Handling setuptools-scm >= 7.0.0 from build-system.requires Requirement satisfied: setuptools-scm >= 7.0.0 (installed: setuptools-scm 8.3.1) /usr/lib/python3.14/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.14/site-packages/setuptools_scm/git.py:328: UserWarning: unprocessed git archival found (no export subst applied) warnings.warn("unprocessed git archival found (no export subst applied)") /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info writing cheroot.egg-info/PKG-INFO writing dependency_links to cheroot.egg-info/dependency_links.txt writing entry points to cheroot.egg-info/entry_points.txt writing requirements to cheroot.egg-info/requires.txt writing top-level names to cheroot.egg-info/top_level.txt ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any reading manifest file 'cheroot.egg-info/SOURCES.txt' adding license file 'LICENSE.md' writing manifest file 'cheroot.egg-info/SOURCES.txt' /usr/lib/python3.14/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.14/site-packages/setuptools_scm/git.py:328: UserWarning: unprocessed git archival found (no export subst applied) warnings.warn("unprocessed git archival found (no export subst applied)") /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info writing cheroot.egg-info/PKG-INFO writing dependency_links to cheroot.egg-info/dependency_links.txt writing entry points to cheroot.egg-info/entry_points.txt writing requirements to cheroot.egg-info/requires.txt writing top-level names to cheroot.egg-info/top_level.txt ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any reading manifest file 'cheroot.egg-info/SOURCES.txt' adding license file 'LICENSE.md' writing manifest file 'cheroot.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot-11.1.0.dist-info' Handling more_itertools>=2.6 from hook generated metadata: Requires-Dist (cheroot) Requirement satisfied: more_itertools>=2.6 (installed: more_itertools 10.5.0) Handling jaraco.functools from hook generated metadata: Requires-Dist (cheroot) Requirement satisfied: jaraco.functools (installed: jaraco.functools 4.3.0) Handling sphinx>=1.8.2; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: sphinx>=1.8.2; extra == "docs" Handling jaraco.packaging>=3.2; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: jaraco.packaging>=3.2; extra == "docs" Handling sphinx-tabs>=1.1.0; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: sphinx-tabs>=1.1.0; extra == "docs" Handling furo; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: furo; extra == "docs" Handling python-dateutil; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: python-dateutil; extra == "docs" Handling sphinxcontrib-apidoc>=0.3.0; extra == "docs" from hook generated metadata: Requires-Dist (cheroot) Ignoring alien requirement: sphinxcontrib-apidoc>=0.3.0; extra == "docs" + cat /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-buildrequires + rm -rfv cheroot-11.1.0.dist-info/ removed 'cheroot-11.1.0.dist-info/licenses/LICENSE.md' removed directory 'cheroot-11.1.0.dist-info/licenses' removed 'cheroot-11.1.0.dist-info/METADATA' removed 'cheroot-11.1.0.dist-info/top_level.txt' removed 'cheroot-11.1.0.dist-info/entry_points.txt' removed directory 'cheroot-11.1.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.td6Rvk + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd cheroot-11.1.0 + mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir Processing /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) /usr/lib/python3.14/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.14/site-packages/setuptools_scm/git.py:328: UserWarning: unprocessed git archival found (no export subst applied) warnings.warn("unprocessed git archival found (no export subst applied)") /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info creating /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info writing /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/SOURCES.txt' ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any reading manifest file '/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/SOURCES.txt' adding license file 'LICENSE.md' writing manifest file '/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-modern-metadata-5279hii7/cheroot-11.1.0.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: cheroot Building wheel for cheroot (pyproject.toml): started Running command Building wheel for cheroot (pyproject.toml) /usr/lib/python3.14/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.14/site-packages/setuptools_scm/git.py:328: UserWarning: unprocessed git archival found (no export subst applied) warnings.warn("unprocessed git archival found (no export subst applied)") /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel running build running build_py creating build/lib/docs copying docs/conf.py -> build/lib/docs copying docs/spelling_stub_ext.py -> build/lib/docs creating build/lib/cheroot copying cheroot/wsgi.py -> build/lib/cheroot copying cheroot/testing.py -> build/lib/cheroot copying cheroot/server.py -> build/lib/cheroot copying cheroot/makefile.py -> build/lib/cheroot copying cheroot/errors.py -> build/lib/cheroot copying cheroot/connections.py -> build/lib/cheroot copying cheroot/cli.py -> build/lib/cheroot copying cheroot/_compat.py -> build/lib/cheroot copying cheroot/__main__.py -> build/lib/cheroot copying cheroot/__init__.py -> build/lib/cheroot creating build/lib/cheroot/workers copying cheroot/workers/threadpool.py -> build/lib/cheroot/workers copying cheroot/workers/__init__.py -> build/lib/cheroot/workers creating build/lib/cheroot/test copying cheroot/test/test_wsgi.py -> build/lib/cheroot/test copying cheroot/test/test_server.py -> build/lib/cheroot/test copying cheroot/test/webtest.py -> build/lib/cheroot/test copying cheroot/test/test_ssl.py -> build/lib/cheroot/test copying cheroot/test/test_makefile.py -> build/lib/cheroot/test copying cheroot/test/test_errors.py -> build/lib/cheroot/test copying cheroot/test/test_dispatch.py -> build/lib/cheroot/test copying cheroot/test/test_core.py -> build/lib/cheroot/test copying cheroot/test/test_conn.py -> build/lib/cheroot/test copying cheroot/test/test_cli.py -> build/lib/cheroot/test copying cheroot/test/test__compat.py -> build/lib/cheroot/test copying cheroot/test/helper.py -> build/lib/cheroot/test copying cheroot/test/conftest.py -> build/lib/cheroot/test copying cheroot/test/_pytest_plugin.py -> build/lib/cheroot/test copying cheroot/test/__init__.py -> build/lib/cheroot/test creating build/lib/cheroot/ssl copying cheroot/ssl/pyopenssl.py -> build/lib/cheroot/ssl copying cheroot/ssl/builtin.py -> build/lib/cheroot/ssl copying cheroot/ssl/__init__.py -> build/lib/cheroot/ssl running egg_info writing cheroot.egg-info/PKG-INFO writing dependency_links to cheroot.egg-info/dependency_links.txt writing entry points to cheroot.egg-info/entry_points.txt writing requirements to cheroot.egg-info/requires.txt writing top-level names to cheroot.egg-info/top_level.txt ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any reading manifest file 'cheroot.egg-info/SOURCES.txt' adding license file 'LICENSE.md' writing manifest file 'cheroot.egg-info/SOURCES.txt' copying docs/devguide.rst -> build/lib/docs copying docs/history.rst -> build/lib/docs copying docs/index.rst -> build/lib/docs copying docs/spelling_wordlist.txt -> build/lib/docs creating build/lib/docs/changelog-fragments.d copying docs/changelog-fragments.d/.gitignore -> build/lib/docs/changelog-fragments.d copying docs/changelog-fragments.d/.towncrier-template.rst.j2 -> build/lib/docs/changelog-fragments.d copying docs/changelog-fragments.d/README.rst -> build/lib/docs/changelog-fragments.d copying cheroot/__init__.pyi -> build/lib/cheroot copying cheroot/_compat.pyi -> build/lib/cheroot copying cheroot/cli.pyi -> build/lib/cheroot copying cheroot/connections.pyi -> build/lib/cheroot copying cheroot/errors.pyi -> build/lib/cheroot copying cheroot/makefile.pyi -> build/lib/cheroot copying cheroot/py.typed -> build/lib/cheroot copying cheroot/server.pyi -> build/lib/cheroot copying cheroot/testing.pyi -> build/lib/cheroot copying cheroot/wsgi.pyi -> build/lib/cheroot creating build/lib/docs/pkg copying docs/pkg/.gitignore -> build/lib/docs/pkg creating build/lib/docs/contributing copying docs/contributing/guidelines.rst -> build/lib/docs/contributing copying docs/contributing/release_guide.rst -> build/lib/docs/contributing creating build/lib/docs/_templates copying docs/_templates/python_2_eol.html -> build/lib/docs/_templates copying cheroot/workers/__init__.pyi -> build/lib/cheroot/workers copying cheroot/workers/threadpool.pyi -> build/lib/cheroot/workers copying cheroot/ssl/__init__.pyi -> build/lib/cheroot/ssl copying cheroot/ssl/builtin.pyi -> build/lib/cheroot/ssl copying cheroot/ssl/pyopenssl.pyi -> build/lib/cheroot/ssl installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/cheroot copying build/lib/cheroot/wsgi.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/testing.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/server.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/py.typed -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/makefile.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/errors.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/connections.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/cli.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/_compat.pyi -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/__init__.pyi -> build/bdist.linux-x86_64/wheel/./cheroot creating build/bdist.linux-x86_64/wheel/cheroot/ssl copying build/lib/cheroot/ssl/pyopenssl.pyi -> build/bdist.linux-x86_64/wheel/./cheroot/ssl copying build/lib/cheroot/ssl/builtin.pyi -> build/bdist.linux-x86_64/wheel/./cheroot/ssl copying build/lib/cheroot/ssl/__init__.pyi -> build/bdist.linux-x86_64/wheel/./cheroot/ssl copying build/lib/cheroot/ssl/__init__.py -> build/bdist.linux-x86_64/wheel/./cheroot/ssl copying build/lib/cheroot/ssl/builtin.py -> build/bdist.linux-x86_64/wheel/./cheroot/ssl copying build/lib/cheroot/ssl/pyopenssl.py -> build/bdist.linux-x86_64/wheel/./cheroot/ssl creating build/bdist.linux-x86_64/wheel/cheroot/test copying build/lib/cheroot/test/__init__.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/_pytest_plugin.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/conftest.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/helper.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test__compat.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_cli.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_conn.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_core.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_dispatch.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_errors.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_makefile.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_ssl.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/webtest.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_server.py -> build/bdist.linux-x86_64/wheel/./cheroot/test copying build/lib/cheroot/test/test_wsgi.py -> build/bdist.linux-x86_64/wheel/./cheroot/test creating build/bdist.linux-x86_64/wheel/cheroot/workers copying build/lib/cheroot/workers/threadpool.pyi -> build/bdist.linux-x86_64/wheel/./cheroot/workers copying build/lib/cheroot/workers/__init__.pyi -> build/bdist.linux-x86_64/wheel/./cheroot/workers copying build/lib/cheroot/workers/__init__.py -> build/bdist.linux-x86_64/wheel/./cheroot/workers copying build/lib/cheroot/workers/threadpool.py -> build/bdist.linux-x86_64/wheel/./cheroot/workers copying build/lib/cheroot/__init__.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/__main__.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/_compat.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/cli.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/connections.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/errors.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/makefile.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/server.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/testing.py -> build/bdist.linux-x86_64/wheel/./cheroot copying build/lib/cheroot/wsgi.py -> build/bdist.linux-x86_64/wheel/./cheroot creating build/bdist.linux-x86_64/wheel/docs creating build/bdist.linux-x86_64/wheel/docs/_templates copying build/lib/docs/_templates/python_2_eol.html -> build/bdist.linux-x86_64/wheel/./docs/_templates creating build/bdist.linux-x86_64/wheel/docs/contributing copying build/lib/docs/contributing/release_guide.rst -> build/bdist.linux-x86_64/wheel/./docs/contributing copying build/lib/docs/contributing/guidelines.rst -> build/bdist.linux-x86_64/wheel/./docs/contributing creating build/bdist.linux-x86_64/wheel/docs/pkg copying build/lib/docs/pkg/.gitignore -> build/bdist.linux-x86_64/wheel/./docs/pkg creating build/bdist.linux-x86_64/wheel/docs/changelog-fragments.d copying build/lib/docs/changelog-fragments.d/README.rst -> build/bdist.linux-x86_64/wheel/./docs/changelog-fragments.d copying build/lib/docs/changelog-fragments.d/.towncrier-template.rst.j2 -> build/bdist.linux-x86_64/wheel/./docs/changelog-fragments.d copying build/lib/docs/changelog-fragments.d/.gitignore -> build/bdist.linux-x86_64/wheel/./docs/changelog-fragments.d copying build/lib/docs/spelling_wordlist.txt -> build/bdist.linux-x86_64/wheel/./docs copying build/lib/docs/index.rst -> build/bdist.linux-x86_64/wheel/./docs copying build/lib/docs/history.rst -> build/bdist.linux-x86_64/wheel/./docs copying build/lib/docs/devguide.rst -> build/bdist.linux-x86_64/wheel/./docs copying build/lib/docs/spelling_stub_ext.py -> build/bdist.linux-x86_64/wheel/./docs copying build/lib/docs/conf.py -> build/bdist.linux-x86_64/wheel/./docs running install_egg_info Copying cheroot.egg-info to build/bdist.linux-x86_64/wheel/./cheroot-11.1.0-py3.14.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/cheroot-11.1.0.dist-info/WHEEL creating '/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir/pip-wheel-8i062r_5/.tmp-5xs4zxxv/cheroot-11.1.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'cheroot/__init__.py' adding 'cheroot/__init__.pyi' adding 'cheroot/__main__.py' adding 'cheroot/_compat.py' adding 'cheroot/_compat.pyi' adding 'cheroot/cli.py' adding 'cheroot/cli.pyi' adding 'cheroot/connections.py' adding 'cheroot/connections.pyi' adding 'cheroot/errors.py' adding 'cheroot/errors.pyi' adding 'cheroot/makefile.py' adding 'cheroot/makefile.pyi' adding 'cheroot/py.typed' adding 'cheroot/server.py' adding 'cheroot/server.pyi' adding 'cheroot/testing.py' adding 'cheroot/testing.pyi' adding 'cheroot/wsgi.py' adding 'cheroot/wsgi.pyi' adding 'cheroot/ssl/__init__.py' adding 'cheroot/ssl/__init__.pyi' adding 'cheroot/ssl/builtin.py' adding 'cheroot/ssl/builtin.pyi' adding 'cheroot/ssl/pyopenssl.py' adding 'cheroot/ssl/pyopenssl.pyi' adding 'cheroot/test/__init__.py' adding 'cheroot/test/_pytest_plugin.py' adding 'cheroot/test/conftest.py' adding 'cheroot/test/helper.py' adding 'cheroot/test/test__compat.py' adding 'cheroot/test/test_cli.py' adding 'cheroot/test/test_conn.py' adding 'cheroot/test/test_core.py' adding 'cheroot/test/test_dispatch.py' adding 'cheroot/test/test_errors.py' adding 'cheroot/test/test_makefile.py' adding 'cheroot/test/test_server.py' adding 'cheroot/test/test_ssl.py' adding 'cheroot/test/test_wsgi.py' adding 'cheroot/test/webtest.py' adding 'cheroot/workers/__init__.py' adding 'cheroot/workers/__init__.pyi' adding 'cheroot/workers/threadpool.py' adding 'cheroot/workers/threadpool.pyi' adding 'cheroot-11.1.0.dist-info/licenses/LICENSE.md' adding 'docs/conf.py' adding 'docs/devguide.rst' adding 'docs/history.rst' adding 'docs/index.rst' adding 'docs/spelling_stub_ext.py' adding 'docs/spelling_wordlist.txt' adding 'docs/_templates/python_2_eol.html' adding 'docs/changelog-fragments.d/.gitignore' adding 'docs/changelog-fragments.d/.towncrier-template.rst.j2' adding 'docs/changelog-fragments.d/README.rst' adding 'docs/contributing/guidelines.rst' adding 'docs/contributing/release_guide.rst' adding 'docs/pkg/.gitignore' adding 'cheroot-11.1.0.dist-info/METADATA' adding 'cheroot-11.1.0.dist-info/WHEEL' adding 'cheroot-11.1.0.dist-info/entry_points.txt' adding 'cheroot-11.1.0.dist-info/top_level.txt' adding 'cheroot-11.1.0.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for cheroot (pyproject.toml): finished with status 'done' Created wheel for cheroot: filename=cheroot-11.1.0-py3-none-any.whl size=122388 sha256=295b83849dff2cece182e0901aecb21584bb8493624ad7a3cf9f87cf443a90e2 Stored in directory: /builddir/.cache/pip/wheels/00/a6/38/6af702aa8903834e4cd42c197dae1ee3c7b06163e90714b925 Successfully built cheroot + sphinx-build -vvv docs html Running Sphinx v8.2.3 loading translations [en]... locale_dir /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/locales/en/LC_MESSAGES does not exist locale_dir /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/locales/en/LC_MESSAGES does not exist done [app] setting up extension: 'sphinx.addnodes' [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] setting up extension: 'sphinx.builders.changes' [app] adding builder: [app] setting up extension: 'sphinx.builders.epub3' [app] adding builder: [app] adding config value: ('epub_basename', . at 0x7f462456ddd0>, '', frozenset({})) [app] adding config value: ('epub_version', 3.0, 'epub', frozenset({})) [app] adding config value: ('epub_theme', 'epub', 'epub', frozenset({})) [app] adding config value: ('epub_theme_options', {}, 'epub', frozenset({})) [app] adding config value: ('epub_title', . at 0x7f4623df66c0>, 'epub', frozenset({})) [app] adding config value: ('epub_author', . at 0x7f4623df6820>, 'epub', frozenset({})) [app] adding config value: ('epub_language', . at 0x7f4623df6980>, 'epub', frozenset({})) [app] adding config value: ('epub_publisher', . at 0x7f4623df6ae0>, 'epub', frozenset({})) [app] adding config value: ('epub_copyright', . at 0x7f4623df6b90>, 'epub', frozenset({})) [app] adding config value: ('epub_identifier', 'unknown', 'epub', frozenset({})) [app] adding config value: ('epub_scheme', 'unknown', 'epub', frozenset({})) [app] adding config value: ('epub_uid', 'unknown', 'env', frozenset({})) [app] adding config value: ('epub_cover', (), 'env', frozenset({, })) [app] adding config value: ('epub_guide', (), 'env', frozenset({, })) [app] adding config value: ('epub_pre_files', [], 'env', frozenset({, })) [app] adding config value: ('epub_post_files', [], 'env', frozenset({, })) [app] adding config value: ('epub_css_files', . at 0x7f46245f97a0>, 'epub', frozenset({, })) [app] adding config value: ('epub_exclude_files', [], 'env', frozenset({, })) [app] adding config value: ('epub_tocdepth', 3, 'env', frozenset({})) [app] adding config value: ('epub_tocdup', True, 'env', frozenset({})) [app] adding config value: ('epub_tocscope', 'default', 'env', frozenset({})) [app] adding config value: ('epub_fix_images', False, 'env', frozenset({})) [app] adding config value: ('epub_max_image_width', 0, 'env', frozenset({})) [app] adding config value: ('epub_show_urls', 'inline', 'epub', frozenset({})) [app] adding config value: ('epub_use_index', . at 0x7f4623df6a30>, 'epub', frozenset({})) [app] adding config value: ('epub_description', 'unknown', 'epub', frozenset({})) [app] adding config value: ('epub_contributor', 'unknown', 'epub', frozenset({})) [app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', ENUM('horizontal', 'vertical')) [app] connecting event 'config-inited' (800): [id=0] [app] connecting event 'builder-inited' (500): [id=1] [app] setting up extension: 'sphinx.builders.dirhtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('html_theme', 'alabaster', 'html', frozenset({})) [app] adding config value: ('html_theme_path', [], 'html', frozenset({, })) [app] adding config value: ('html_theme_options', {}, 'html', frozenset({})) [app] adding config value: ('html_title', . at 0x7f4623df68d0>, 'html', frozenset({})) [app] adding config value: ('html_short_title', . at 0x7f4623df7110>, 'html', frozenset({})) [app] adding config value: ('html_style', None, 'html', frozenset({, , })) [app] adding config value: ('html_logo', None, 'html', frozenset({})) [app] adding config value: ('html_favicon', None, 'html', frozenset({})) [app] adding config value: ('html_css_files', [], 'html', frozenset({, })) [app] adding config value: ('html_js_files', [], 'html', frozenset({, })) [app] adding config value: ('html_static_path', [], 'html', frozenset({, })) [app] adding config value: ('html_extra_path', [], 'html', frozenset({, })) [app] adding config value: ('html_last_updated_fmt', None, 'html', frozenset({})) [app] adding config value: ('html_last_updated_use_utc', False, 'html', frozenset({})) [app] adding config value: ('html_sidebars', {}, 'html', frozenset({})) [app] adding config value: ('html_additional_pages', {}, 'html', frozenset({})) [app] adding config value: ('html_domain_indices', True, 'html', frozenset({, , , })) [app] adding config value: ('html_permalinks', True, 'html', frozenset({})) [app] adding config value: ('html_permalinks_icon', '¶', 'html', frozenset({})) [app] adding config value: ('html_use_index', True, 'html', frozenset({})) [app] adding config value: ('html_split_index', False, 'html', frozenset({})) [app] adding config value: ('html_copy_source', True, 'html', frozenset({})) [app] adding config value: ('html_show_sourcelink', True, 'html', frozenset({})) [app] adding config value: ('html_sourcelink_suffix', '.txt', 'html', frozenset({})) [app] adding config value: ('html_use_opensearch', '', 'html', frozenset({})) [app] adding config value: ('html_file_suffix', None, 'html', frozenset({})) [app] adding config value: ('html_link_suffix', None, 'html', frozenset({})) [app] adding config value: ('html_show_copyright', True, 'html', frozenset({})) [app] adding config value: ('html_show_search_summary', True, 'html', frozenset({})) [app] adding config value: ('html_show_sphinx', True, 'html', frozenset({})) [app] adding config value: ('html_context', {}, 'html', frozenset({})) [app] adding config value: ('html_output_encoding', 'utf-8', 'html', frozenset({})) [app] adding config value: ('html_compact_lists', True, 'html', frozenset({})) [app] adding config value: ('html_secnumber_suffix', '. ', 'html', frozenset({})) [app] adding config value: ('html_search_language', None, 'html', frozenset({})) [app] adding config value: ('html_search_options', {}, 'html', frozenset({})) [app] adding config value: ('html_search_scorer', '', '', frozenset({})) [app] adding config value: ('html_scaled_image_link', True, 'html', frozenset({})) [app] adding config value: ('html_baseurl', '', 'html', frozenset({})) [app] adding config value: ('html_codeblock_linenos_style', 'inline', 'html', ENUM('inline', 'table')) [app] adding config value: ('html_math_renderer', None, 'env', frozenset({, })) [app] adding config value: ('html4_writer', False, 'html', frozenset({})) [app] adding event: 'html-collect-pages' [app] adding event: 'html-page-context' [app] connecting event 'config-inited' (800): [id=2] [app] connecting event 'config-inited' (800): [id=3] [app] connecting event 'config-inited' (800): [id=4] [app] connecting event 'config-inited' (800): [id=5] [app] connecting event 'config-inited' (800): [id=6] [app] connecting event 'config-inited' (800): [id=7] [app] connecting event 'config-inited' (800): [id=8] [app] connecting event 'config-inited' (800): [id=9] [app] connecting event 'builder-inited' (500): [id=10] [app] connecting event 'html-page-context' (500): [id=11] [app] setting up extension: 'sphinx.ext.mathjax' [app] adding html_math_renderer: mathjax, (, None), (, None) [app] adding config value: ('mathjax_path', 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js', 'html', frozenset({})) [app] adding config value: ('mathjax_options', {}, 'html', frozenset({})) [app] adding config value: ('mathjax_inline', ['\\(', '\\)'], 'html', frozenset({, })) [app] adding config value: ('mathjax_display', ['\\[', '\\]'], 'html', frozenset({, })) [app] adding config value: ('mathjax_config', None, 'html', frozenset({, })) [app] adding config value: ('mathjax2_config', . at 0x7f4623df6770>, 'html', frozenset({, })) [app] adding config value: ('mathjax3_config', None, 'html', frozenset({, })) [app] connecting event 'html-page-context' (500): [id=12] [app] adding builder: [app] setting up extension: 'sphinx.builders.dummy' [app] adding builder: [app] setting up extension: 'sphinx.builders.gettext' [app] adding builder: [app] adding config value: ('gettext_compact', True, 'gettext', frozenset({, })) [app] adding config value: ('gettext_location', True, 'gettext', frozenset({})) [app] adding config value: ('gettext_uuid', False, 'gettext', frozenset({})) [app] adding config value: ('gettext_auto_build', True, 'env', frozenset({})) [app] adding config value: ('gettext_additional_targets', [], 'env', frozenset({, , , })) [app] adding config value: ('gettext_last_translator', 'FULL NAME ', 'gettext', frozenset({})) [app] adding config value: ('gettext_language_team', 'LANGUAGE ', 'gettext', frozenset({})) [app] setting up extension: 'sphinx.builders.html' [app] setting up extension: 'sphinx.builders.latex' [app] setting up extension: 'sphinx.builders.latex.transforms' [app] adding transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding builder: [app] connecting event 'config-inited' (800): [id=13] [app] connecting event 'config-inited' (800): [id=14] [app] connecting event 'builder-inited' (500): [id=15] [app] adding config value: ('latex_engine', , '', ENUM('lualatex', 'pdflatex', 'platex', 'uplatex', 'xelatex')) [app] adding config value: ('latex_documents', , '', frozenset({, })) [app] adding config value: ('latex_logo', None, '', frozenset({})) [app] adding config value: ('latex_appendices', [], '', frozenset({, })) [app] adding config value: ('latex_use_latex_multicolumn', False, '', frozenset({})) [app] adding config value: ('latex_use_xindy', , '', frozenset({})) [app] adding config value: ('latex_toplevel_sectioning', None, '', ENUM('chapter', 'part', 'section', None)) [app] adding config value: ('latex_domain_indices', True, '', frozenset({, , , })) [app] adding config value: ('latex_show_urls', 'no', '', frozenset({})) [app] adding config value: ('latex_show_pagerefs', False, '', frozenset({})) [app] adding config value: ('latex_elements', {}, '', frozenset({})) [app] adding config value: ('latex_additional_files', [], '', frozenset({, })) [app] adding config value: ('latex_table_style', ['booktabs', 'colorrows'], '', frozenset({})) [app] adding config value: ('latex_theme', 'manual', '', frozenset({})) [app] adding config value: ('latex_theme_options', {}, '', frozenset({})) [app] adding config value: ('latex_theme_path', [], '', frozenset({})) [app] adding config value: ('latex_docclass', , '', frozenset({})) [app] setting up extension: 'sphinx.builders.linkcheck' [app] adding builder: [app] adding post transform: [app] adding config value: ('linkcheck_ignore', [], '', frozenset({, })) [app] adding config value: ('linkcheck_exclude_documents', [], '', frozenset({, })) [app] adding config value: ('linkcheck_allowed_redirects', {}, '', frozenset({})) [app] adding config value: ('linkcheck_auth', [], '', frozenset({, })) [app] adding config value: ('linkcheck_request_headers', {}, '', frozenset({})) [app] adding config value: ('linkcheck_retries', 1, '', frozenset({})) [app] adding config value: ('linkcheck_timeout', 30, '', frozenset({, })) [app] adding config value: ('linkcheck_workers', 5, '', frozenset({})) [app] adding config value: ('linkcheck_anchors', True, '', frozenset({})) [app] adding config value: ('linkcheck_anchors_ignore', ['^!'], '', frozenset({, })) [app] adding config value: ('linkcheck_anchors_ignore_for_url', (), '', frozenset({, })) [app] adding config value: ('linkcheck_rate_limit_timeout', 300.0, '', frozenset({, })) [app] adding config value: ('linkcheck_allow_unauthorized', False, '', frozenset({})) [app] adding config value: ('linkcheck_report_timeouts_as_broken', False, '', frozenset({})) [app] adding event: 'linkcheck-process-uri' [app] connecting event 'config-inited' (800): [id=16] [app] setting up extension: 'sphinx.builders.manpage' [app] adding builder: [app] adding config value: ('man_pages', , '', frozenset({, })) [app] adding config value: ('man_show_urls', False, '', frozenset({})) [app] adding config value: ('man_make_section_directory', False, '', frozenset({})) [app] setting up extension: 'sphinx.builders.singlehtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('singlehtml_sidebars', . at 0x7f4623df7a00>, 'html', frozenset({})) [app] setting up extension: 'sphinx.builders.texinfo' [app] adding builder: [app] adding config value: ('texinfo_documents', , '', frozenset({, })) [app] adding config value: ('texinfo_appendices', [], '', frozenset({, })) [app] adding config value: ('texinfo_elements', {}, '', frozenset({})) [app] adding config value: ('texinfo_domain_indices', True, '', frozenset({, , , })) [app] adding config value: ('texinfo_show_urls', 'footnote', '', frozenset({})) [app] adding config value: ('texinfo_no_detailmenu', False, '', frozenset({})) [app] adding config value: ('texinfo_cross_references', True, '', frozenset({})) [app] setting up extension: 'sphinx.builders.text' [app] adding builder: [app] adding config value: ('text_sectionchars', '*=-~"+`', 'env', frozenset({})) [app] adding config value: ('text_newlines', 'unix', 'env', frozenset({})) [app] adding config value: ('text_add_secnumbers', True, 'env', frozenset({})) [app] adding config value: ('text_secnumber_suffix', '. ', 'env', frozenset({})) [app] setting up extension: 'sphinx.builders.xml' [app] adding builder: [app] adding builder: [app] adding config value: ('xml_pretty', True, 'env', frozenset({})) [app] setting up extension: 'sphinx.config' [app] connecting event 'config-inited' (800): [id=17] [app] connecting event 'config-inited' (800): [id=18] [app] connecting event 'config-inited' (800): [id=19] [app] connecting event 'config-inited' (795): [id=20] [app] connecting event 'config-inited' (800): [id=21] [app] connecting event 'config-inited' (800): [id=22] [app] connecting event 'config-inited' (800): [id=23] [app] connecting event 'env-get-outdated' (500): [id=24] [app] setting up extension: 'sphinx.domains.c' [app] adding domain: [app] adding config value: ('c_id_attributes', [], 'env', frozenset({, })) [app] adding config value: ('c_paren_attributes', [], 'env', frozenset({, })) [app] adding config value: ('c_extra_keywords', frozenset({'bool', 'imaginary', 'alignof', 'thread_local', 'alignas', 'noreturn', 'complex', 'static_assert'}), 'env', frozenset({, , , })) [app] adding config value: ('c_maximum_signature_line_length', None, 'env', frozenset({, })) [app] adding post transform: [app] setting up extension: 'sphinx.domains.changeset' [app] adding domain: [app] adding directive: ('deprecated', ) [app] adding directive: ('versionadded', ) [app] adding directive: ('versionchanged', ) [app] adding directive: ('versionremoved', ) [app] setting up extension: 'sphinx.domains.citation' [app] adding domain: [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.domains.cpp' [app] adding domain: [app] adding config value: ('cpp_index_common_prefix', [], 'env', frozenset({})) [app] adding config value: ('cpp_id_attributes', [], 'env', frozenset({, })) [app] adding config value: ('cpp_paren_attributes', [], 'env', frozenset({, })) [app] adding config value: ('cpp_maximum_signature_line_length', None, 'env', frozenset({, })) [app] adding post transform: [app] adding config value: ('cpp_debug_lookup', False, '', frozenset({})) [app] adding config value: ('cpp_debug_show_tree', False, '', frozenset({})) [app] connecting event 'builder-inited' (500): .init_stuff at 0x7f46236b2560> [id=25] [app] setting up extension: 'sphinx.domains.index' [app] adding domain: [app] adding directive: ('index', ) [app] adding role: ('index', ) [app] setting up extension: 'sphinx.domains.javascript' [app] adding domain: [app] adding config value: ('javascript_maximum_signature_line_length', None, 'env', frozenset({, })) [app] adding config value: ('javascript_trailing_comma_in_multi_line_signatures', True, 'env', frozenset({})) [app] setting up extension: 'sphinx.domains.math' [app] adding domain: [app] adding role: ('eq', ) [app] setting up extension: 'sphinx.domains.python' [app] setting up extension: 'sphinx.directives' [app] adding config value: ('strip_signature_backslash', False, 'env', frozenset({})) [app] adding event: 'object-description-transform' [app] adding domain: [app] adding config value: ('python_use_unqualified_type_names', False, 'env', frozenset({})) [app] adding config value: ('python_maximum_signature_line_length', None, 'env', frozenset({, })) [app] adding config value: ('python_trailing_comma_in_multi_line_signatures', True, 'env', frozenset({})) [app] adding config value: ('python_display_short_literal_types', False, 'env', frozenset({})) [app] connecting event 'object-description-transform' (500): [id=26] [app] connecting event 'missing-reference' (900): [id=27] [app] setting up extension: 'sphinx.domains.rst' [app] adding domain: [app] setting up extension: 'sphinx.domains.std' [app] adding domain: [app] connecting event 'warn-missing-reference' (500): [id=28] [app] setting up extension: 'sphinx.directives' [app] setting up extension: 'sphinx.directives.admonitions' [app] adding directive: ('admonition', ) [app] adding directive: ('attention', ) [app] adding directive: ('caution', ) [app] adding directive: ('danger', ) [app] adding directive: ('error', ) [app] adding directive: ('hint', ) [app] adding directive: ('important', ) [app] adding directive: ('note', ) [app] adding directive: ('tip', ) [app] adding directive: ('warning', ) [app] adding directive: ('seealso', ) [app] setting up extension: 'sphinx.directives.code' [app] setting up extension: 'sphinx.directives.other' [app] setting up extension: 'sphinx.directives.patches' [app] setting up extension: 'sphinx.extension' [app] connecting event 'config-inited' (800): [id=29] [app] setting up extension: 'sphinx.parsers' [app] adding search source_parser: [app] setting up extension: 'sphinx.registry' [app] connecting event 'config-inited' (800): [id=30] [app] setting up extension: 'sphinx.roles' [app] setting up extension: 'sphinx.transforms' [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.transforms.compact_bullet_list' [app] adding transform: [app] setting up extension: 'sphinx.transforms.i18n' [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.transforms.references' [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.transforms.post_transforms' [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] setting up extension: 'sphinx.transforms.post_transforms.code' [app] adding post transform: [app] adding post transform: [app] setting up extension: 'sphinx.transforms.post_transforms.images' [app] adding post transform: [app] adding post transform: [app] setting up extension: 'sphinx.versioning' [app] adding transform: [app] setting up extension: 'sphinx.environment.collectors.dependencies' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=31] [app] connecting event 'env-merge-info' (500): > [id=32] [app] connecting event 'env-purge-doc' (500): > [id=33] [app] connecting event 'env-get-updated' (500): > [id=34] [app] connecting event 'env-get-outdated' (500): > [id=35] [app] setting up extension: 'sphinx.environment.collectors.asset' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=36] [app] connecting event 'env-merge-info' (500): > [id=37] [app] connecting event 'env-purge-doc' (500): > [id=38] [app] connecting event 'env-get-updated' (500): > [id=39] [app] connecting event 'env-get-outdated' (500): > [id=40] [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=41] [app] connecting event 'env-merge-info' (500): > [id=42] [app] connecting event 'env-purge-doc' (500): > [id=43] [app] connecting event 'env-get-updated' (500): > [id=44] [app] connecting event 'env-get-outdated' (500): > [id=45] [app] setting up extension: 'sphinx.environment.collectors.metadata' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=46] [app] connecting event 'env-merge-info' (500): > [id=47] [app] connecting event 'env-purge-doc' (500): > [id=48] [app] connecting event 'env-get-updated' (500): > [id=49] [app] connecting event 'env-get-outdated' (500): > [id=50] [app] setting up extension: 'sphinx.environment.collectors.title' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=51] [app] connecting event 'env-merge-info' (500): > [id=52] [app] connecting event 'env-purge-doc' (500): > [id=53] [app] connecting event 'env-get-updated' (500): > [id=54] [app] connecting event 'env-get-outdated' (500): > [id=55] [app] setting up extension: 'sphinx.environment.collectors.toctree' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=56] [app] connecting event 'env-merge-info' (500): > [id=57] [app] connecting event 'env-purge-doc' (500): > [id=58] [app] connecting event 'env-get-updated' (500): > [id=59] [app] connecting event 'env-get-outdated' (500): > [id=60] [app] setting up extension: 'alabaster' [app] adding HTML theme: 'alabaster', '/usr/lib/python3.14/site-packages/alabaster' [app] connecting event 'html-page-context' (500): [id=61] [app] setting up extension: 'sphinxcontrib.applehelp' Could not import extension sphinxcontrib.applehelp [app] setting up extension: 'sphinxcontrib.devhelp' Could not import extension sphinxcontrib.devhelp [app] setting up extension: 'sphinxcontrib.htmlhelp' Could not import extension sphinxcontrib.htmlhelp [app] setting up extension: 'sphinxcontrib.serializinghtml' Could not import extension sphinxcontrib.serializinghtml [app] setting up extension: 'sphinxcontrib.qthelp' Could not import extension sphinxcontrib.qthelp [app] setting up extension: 'sphinx.ext.autodoc' [app] adding autodocumenter: [app] adding directive: ('automodule', ) [app] adding autodocumenter: [app] adding directive: ('autoclass', ) [app] adding autodocumenter: [app] adding directive: ('autoexception', ) [app] adding autodocumenter: [app] adding directive: ('autodata', ) [app] adding autodocumenter: [app] adding directive: ('autofunction', ) [app] adding autodocumenter: [app] adding directive: ('autodecorator', ) [app] adding autodocumenter: [app] adding directive: ('automethod', ) [app] adding autodocumenter: [app] adding directive: ('autoattribute', ) [app] adding autodocumenter: [app] adding directive: ('autoproperty', ) [app] adding config value: ('autoclass_content', 'class', 'env', ENUM('both', 'class', 'init')) [app] adding config value: ('autodoc_member_order', 'alphabetical', 'env', ENUM('alphabetical', 'bysource', 'groupwise')) [app] adding config value: ('autodoc_class_signature', 'mixed', 'env', ENUM('mixed', 'separated')) [app] adding config value: ('autodoc_default_options', {}, 'env', frozenset({})) [app] adding config value: ('autodoc_docstring_signature', True, 'env', frozenset({})) [app] adding config value: ('autodoc_mock_imports', [], 'env', frozenset({, })) [app] adding config value: ('autodoc_typehints', 'signature', 'env', ENUM('both', 'description', 'none', 'signature')) [app] adding config value: ('autodoc_typehints_description_target', 'all', 'env', ENUM('all', 'documented', 'documented_params')) [app] adding config value: ('autodoc_type_aliases', {}, 'env', frozenset({})) [app] adding config value: ('autodoc_typehints_format', 'short', 'env', ENUM('fully-qualified', 'short')) [app] adding config value: ('autodoc_warningiserror', True, 'env', frozenset({})) [app] adding config value: ('autodoc_inherit_docstrings', True, 'env', frozenset({})) [app] adding event: 'autodoc-before-process-signature' [app] adding event: 'autodoc-process-docstring' [app] adding event: 'autodoc-process-signature' [app] adding event: 'autodoc-skip-member' [app] adding event: 'autodoc-process-bases' [app] setting up extension: 'sphinx.ext.autodoc.preserve_defaults' [app] adding config value: ('autodoc_preserve_defaults', False, 'env', frozenset({})) [app] connecting event 'autodoc-before-process-signature' (500): [id=62] [app] setting up extension: 'sphinx.ext.autodoc.type_comment' [app] adding config value: ('autodoc_use_type_comments', True, 'env', frozenset({})) [app] connecting event 'autodoc-before-process-signature' (500): [id=63] [app] setting up extension: 'sphinx.ext.autodoc.typehints' [app] connecting event 'autodoc-process-signature' (500): [id=64] [app] connecting event 'object-description-transform' (500): [id=65] [app] setting up extension: 'sphinx.ext.autosectionlabel' [app] adding config value: ('autosectionlabel_prefix_document', False, 'env', frozenset({})) [app] adding config value: ('autosectionlabel_maxdepth', None, 'env', frozenset({, })) [app] connecting event 'doctree-read' (500): [id=66] [app] setting up extension: 'sphinx.ext.doctest' [app] adding directive: ('testsetup', ) [app] adding directive: ('testcleanup', ) [app] adding directive: ('doctest', ) [app] adding directive: ('testcode', ) [app] adding directive: ('testoutput', ) [app] adding builder: [app] adding config value: ('doctest_show_successes', True, '', frozenset({})) [app] adding config value: ('doctest_path', (), '', frozenset({, })) [app] adding config value: ('doctest_test_doctest_blocks', 'default', '', frozenset({})) [app] adding config value: ('doctest_global_setup', '', '', frozenset({})) [app] adding config value: ('doctest_global_cleanup', '', '', frozenset({})) [app] adding config value: ('doctest_default_flags', 41, '', frozenset({})) [app] setting up extension: 'sphinx.ext.extlinks' [app] adding config value: ('extlinks', {}, 'env', frozenset({})) [app] adding config value: ('extlinks_detect_hardcoded_links', False, 'env', frozenset({})) [app] connecting event 'builder-inited' (500): [id=67] [app] adding post transform: [app] setting up extension: 'sphinx.ext.intersphinx' [app] adding config value: ('intersphinx_mapping', {}, 'env', frozenset({})) [app] adding config value: ('intersphinx_resolve_self', '', 'env', frozenset({})) [app] adding config value: ('intersphinx_cache_limit', 5, '', frozenset({})) [app] adding config value: ('intersphinx_timeout', None, '', frozenset({, , })) [app] adding config value: ('intersphinx_disabled_reftypes', ['std:doc'], 'env', frozenset({, , , })) [app] connecting event 'config-inited' (800): [id=68] [app] connecting event 'builder-inited' (500): [id=69] [app] connecting event 'source-read' (500): [id=70] [app] connecting event 'missing-reference' (500): [id=71] [app] adding post transform: [app] setting up extension: 'sphinx_tabs.tabs' [app] adding config value: ('sphinx_tabs_valid_builders', [], '', ()) [app] adding config value: ('sphinx_tabs_disable_css_loading', False, 'html', []) [app] adding config value: ('sphinx_tabs_disable_tab_closing', False, 'html', []) [app] adding node: (, {'html': (, )}) [app] adding translation_handlers: , {'html': (, )} [app] adding node: (, {'html': (, )}) [app] adding translation_handlers: , {'html': (, )} [app] adding node: (, {'html': (, )}) [app] adding translation_handlers: , {'html': (, )} [app] adding node: (, {'html': (, )}) [app] adding translation_handlers: , {'html': (, )} [app] adding directive: ('tabs', ) [app] adding directive: ('tab', ) [app] adding directive: ('group-tab', ) [app] adding directive: ('code-tab', ) [app] connecting event 'builder-inited' (500): . at 0x7f4623243ed0> [id=72] [app] connecting event 'html-page-context' (500): [id=73] [app] setting up extension: 'sphinxcontrib.apidoc' [app] setting up extension: 'sphinx.ext.autodoc' [app] connecting event 'builder-inited' (500): [id=74] [app] adding config value: ('apidoc_module_dir', None, 'env', []) [app] adding config value: ('apidoc_output_dir', 'api', 'env', []) [app] adding config value: ('apidoc_template_dir', 'templates', 'env', []) [app] adding config value: ('apidoc_excluded_paths', [], 'env', list[str]) [app] adding config value: ('apidoc_separate_modules', False, 'env', []) [app] adding config value: ('apidoc_toc_file', None, 'env', [, ]) [app] adding config value: ('apidoc_module_first', False, 'env', []) [app] adding config value: ('apidoc_extra_args', [], 'env', []) making output directory... done [app] emitting event: 'config-inited'(Config(project='Project name not set', author='Author name not set', project_copyright='', copyright='', version='', release='', today='', today_fmt=None, language='en', locale_dirs=['locales'], figure_language_filename='{root}.{language}{ext}', gettext_allow_fuzzy_translations=False, translation_progress_classes=False, master_doc='index', root_doc='index', source_suffix={'.rst': 'restructuredtext'}, source_encoding='utf-8-sig', exclude_patterns=['changelog-fragments.d/**'], include_patterns=['**'], default_role='any', add_function_parentheses=True, add_module_names=True, toc_object_entries=True, toc_object_entries_show_parents='domain', trim_footnote_reference_space=False, show_authors=False, pygments_style=None, highlight_language='default', highlight_options={}, templates_path=['_templates'], template_bridge=None, keep_warnings=False, suppress_warnings=[], show_warning_types=True, modindex_common_prefix=[], rst_epilog=None, rst_prolog=None, trim_doctest_flags=True, primary_domain='py', needs_sphinx=None, needs_extensions={}, manpages_url=None, nitpicky=True, nitpick_ignore=[('py:const', 'socket.SO_PEERCRED'), ('py:class', '_pyio.BufferedWriter'), ('py:class', '_pyio.BufferedReader'), ('py:class', 'unittest.case.TestCase'), ('py:meth', 'cheroot.connections.ConnectionManager.get_conn'), ('py:class', 'pyopenssl:OpenSSL.SSL.Context')], nitpick_ignore_regex=[], numfig=False, numfig_secnum_depth=1, numfig_format={}, maximum_signature_line_length=None, math_number_all=False, math_eqref_format=None, math_numfig=True, math_numsep='.', tls_verify=True, tls_cacerts=None, user_agent=None, smartquotes=True, smartquotes_action='qDe', smartquotes_excludes={'languages': ['ja', 'zh_CN', 'zh_TW'], 'builders': ['man', 'text']}, option_emphasise_placeholders=False, epub_basename='Projectnamenotset', epub_version=3.0, epub_theme='epub', epub_theme_options={}, epub_title='Project name not set', epub_author='Author name not set', epub_language='en', epub_publisher='Author name not set', epub_copyright='', epub_identifier='unknown', epub_scheme='unknown', epub_uid='unknown', epub_cover=(), epub_guide=(), epub_pre_files=[], epub_post_files=[], epub_css_files=[], epub_exclude_files=[], epub_tocdepth=3, epub_tocdup=True, epub_tocscope='default', epub_fix_images=False, epub_max_image_width=0, epub_show_urls='inline', epub_use_index=True, epub_description='unknown', epub_contributor='unknown', epub_writing_mode='horizontal', html_theme='alabaster', html_theme_path=[], html_theme_options={}, html_title='Project name not set documentation', html_short_title='Project name not set documentation', html_style=None, html_logo=None, html_favicon=None, html_css_files=[], html_js_files=[], html_static_path=[], html_extra_path=[], html_last_updated_fmt=None, html_last_updated_use_utc=False, html_sidebars={}, html_additional_pages={}, html_domain_indices=True, html_permalinks=True, html_permalinks_icon='¶', html_use_index=True, html_split_index=False, html_copy_source=True, html_show_sourcelink=True, html_sourcelink_suffix='.txt', html_use_opensearch='', html_file_suffix=None, html_link_suffix=None, html_show_copyright=True, html_show_search_summary=True, html_show_sphinx=True, html_context={}, html_output_encoding='utf-8', html_compact_lists=True, html_secnumber_suffix='. ', html_search_language=None, html_search_options={}, html_search_scorer='', html_scaled_image_link=True, html_baseurl='', html_codeblock_linenos_style='inline', html_math_renderer=None, html4_writer=False, mathjax_path='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js', mathjax_options={}, mathjax_inline=['\\(', '\\)'], mathjax_display=['\\[', '\\]'], mathjax_config=None, mathjax2_config=None, mathjax3_config=None, gettext_compact=True, gettext_location=True, gettext_uuid=False, gettext_auto_build=True, gettext_additional_targets=[], gettext_last_translator='FULL NAME ', gettext_language_team='LANGUAGE ', latex_engine='pdflatex', latex_documents=[('index', 'projectnamenotset.tex', 'Project name not set', 'Author name not set', 'manual')], latex_logo=None, latex_appendices=[], latex_use_latex_multicolumn=False, latex_use_xindy=False, latex_toplevel_sectioning=None, latex_domain_indices=True, latex_show_urls='no', latex_show_pagerefs=False, latex_elements={}, latex_additional_files=[], latex_table_style=['booktabs', 'colorrows'], latex_theme='manual', latex_theme_options={}, latex_theme_path=[], latex_docclass={}, linkcheck_ignore=['http://localhost:\\d+/', 'https://codecov\\.io/gh/cherrypy/cheroot/branch/master/graph/badge\\.svg', 'https://github\\.com/cherrypy/cheroot/actions', 'https://github\\.com/cherrypy/cheroot/commit', 'https://github\\.com/cherrypy/cheroot/issues', 'https://github\\.com/cherrypy/cheroot/pull', 'https://github\\.com/cherrypy/cherrypy/commit', 'https://github\\.com/cherrypy/cherrypy/issues', 'https://github\\.com/cherrypy/cherrypy/pull', 'https://github\\.com/python/cpython/blob/c39b52f/Lib/poplib\\.py#L297-L302', 'https://github\\.com/python/cpython/blob/c39b52f/Lib/poplib\\.py#user-content-L297-L302', '^https://img\\.shields\\.io/matrix', '^https://matrix\\.to/#', '^https://stackoverflow\\.com/', '^https://forums\\.sabnzbd\\.org/'], linkcheck_exclude_documents=[], linkcheck_allowed_redirects={}, linkcheck_auth=[], linkcheck_request_headers={}, linkcheck_retries=1, linkcheck_timeout=30, linkcheck_workers=25, linkcheck_anchors=True, linkcheck_anchors_ignore=['^!', '\\/.*', 'issuecomment-\\d+'], linkcheck_anchors_ignore_for_url=(), linkcheck_rate_limit_timeout=300.0, linkcheck_allow_unauthorized=False, linkcheck_report_timeouts_as_broken=False, man_pages=[('index', 'projectnamenotset', 'Project name not set ', ['Author name not set'], 1)], man_show_urls=False, man_make_section_directory=False, singlehtml_sidebars={}, texinfo_documents=[('index', 'projectnamenotset', 'Project name not set', 'Author name not set', 'projectnamenotset', 'One line description of project', 'Miscellaneous')], texinfo_appendices=[], texinfo_elements={}, texinfo_domain_indices=True, texinfo_show_urls='footnote', texinfo_no_detailmenu=False, texinfo_cross_references=True, text_sectionchars='*=-~"+`', text_newlines='unix', text_add_secnumbers=True, text_secnumber_suffix='. ', xml_pretty=True, c_id_attributes=[], c_paren_attributes=[], c_extra_keywords=frozenset({'bool', 'imaginary', 'alignof', 'thread_local', 'alignas', 'noreturn', 'complex', 'static_assert'}), c_maximum_signature_line_length=None, cpp_index_common_prefix=[], cpp_id_attributes=[], cpp_paren_attributes=[], cpp_maximum_signature_line_length=None, cpp_debug_lookup=False, cpp_debug_show_tree=False, javascript_maximum_signature_line_length=None, javascript_trailing_comma_in_multi_line_signatures=True, strip_signature_backslash=False, python_use_unqualified_type_names=False, python_maximum_signature_line_length=None, python_trailing_comma_in_multi_line_signatures=True, python_display_short_literal_types=False, autoclass_content='class', autodoc_member_order='alphabetical', autodoc_class_signature='mixed', autodoc_default_options={}, autodoc_docstring_signature=True, autodoc_mock_imports=[], autodoc_typehints='signature', autodoc_typehints_description_target='all', autodoc_type_aliases={}, autodoc_typehints_format='short', autodoc_warningiserror=True, autodoc_inherit_docstrings=True, autodoc_preserve_defaults=False, autodoc_use_type_comments=True, autosectionlabel_prefix_document=False, autosectionlabel_maxdepth=1, doctest_show_successes=True, doctest_path=(), doctest_test_doctest_blocks='default', doctest_global_setup='', doctest_global_cleanup='', doctest_default_flags=41, extlinks={'issue': ('https://github.com/cherrypy/cheroot/issues/%s', '#%s'), 'pr': ('https://github.com/cherrypy/cheroot/pull/%s', 'PR #%s'), 'commit': ('https://github.com/cherrypy/cheroot/commit/%s', '%s'), 'cp-issue': ('https://github.com/cherrypy/cherrypy/issues/%s', 'CherryPy #%s'), 'cp-pr': ('https://github.com/cherrypy/cherrypy/pull/%s', 'CherryPy PR #%s'), 'gh': ('https://github.com/%s', 'GitHub: %s'), 'user': ('https://github.com/sponsors/%s', '@%s')}, extlinks_detect_hardcoded_links=False, intersphinx_mapping={'python': ('https://docs.python.org/3', None), 'python2': ('https://docs.python.org/2', None), 'cherrypy': ('https://docs.cherrypy.dev/en/latest', ('https://cherrypy.rtfd.io/en/latest', None)), 'trustme': ('https://trustme.readthedocs.io/en/latest/', None), 'ddt': ('https://ddt.readthedocs.io/en/latest/', None), 'pyopenssl': ('https://www.pyopenssl.org/en/latest/', None), 'towncrier': ('https://towncrier.rtfd.io/en/latest', None)}, intersphinx_resolve_self='', intersphinx_cache_limit=5, intersphinx_timeout=None, intersphinx_disabled_reftypes=['std:doc'], sphinx_tabs_valid_builders=['linkcheck'], sphinx_tabs_disable_css_loading=False, sphinx_tabs_disable_tab_closing=False, apidoc_module_dir='../cheroot', apidoc_output_dir='pkg', apidoc_template_dir='templates', apidoc_excluded_paths=[], apidoc_separate_modules=True, apidoc_toc_file=None, apidoc_module_first=False, apidoc_extra_args=['--implicit-namespaces', '--private']),) locale_dir /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/locales/en/LC_MESSAGES does not exist [app] emitting event: 'builder-inited'() [app] adding role: ('issue', .role at 0x7f46230e9850>) [app] adding role: ('pr', .role at 0x7f462310c7d0>) [app] adding role: ('commit', .role at 0x7f462310c930>) [app] adding role: ('cp-issue', .role at 0x7f462310ca90>) [app] adding role: ('cp-pr', .role at 0x7f462310cbf0>) [app] adding role: ('gh', .role at 0x7f462310cd50>) [app] adding role: ('user', .role at 0x7f462310ceb0>) loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... loading intersphinx inventory 'python2' from https://docs.python.org/2/objects.inv ... loading intersphinx inventory 'cherrypy' from https://cherrypy.rtfd.io/en/latest ... loading intersphinx inventory 'trustme' from https://trustme.readthedocs.io/en/latest/objects.inv ... loading intersphinx inventory 'ddt' from https://ddt.readthedocs.io/en/latest/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/2/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /2/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.python.org' ([Errno -3] Temporary failure in name resolution)")) loading intersphinx inventory 'towncrier' from https://towncrier.rtfd.io/en/latest/objects.inv ... loading intersphinx inventory 'pyopenssl' from https://www.pyopenssl.org/en/latest/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://trustme.readthedocs.io/en/latest/objects.inv' not fetchable due to : HTTPSConnectionPool(host='trustme.readthedocs.io', port=443): Max retries exceeded with url: /en/latest/objects.inv (Caused by NameResolutionError(": Failed to resolve 'trustme.readthedocs.io' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://ddt.readthedocs.io/en/latest/objects.inv' not fetchable due to : HTTPSConnectionPool(host='ddt.readthedocs.io', port=443): Max retries exceeded with url: /en/latest/objects.inv (Caused by NameResolutionError(": Failed to resolve 'ddt.readthedocs.io' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/3/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /3/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.python.org' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://www.pyopenssl.org/en/latest/objects.inv' not fetchable due to : HTTPSConnectionPool(host='www.pyopenssl.org', port=443): Max retries exceeded with url: /en/latest/objects.inv (Caused by NameResolutionError(": Failed to resolve 'www.pyopenssl.org' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://towncrier.rtfd.io/en/latest/objects.inv' not fetchable due to : HTTPSConnectionPool(host='towncrier.rtfd.io', port=443): Max retries exceeded with url: /en/latest/objects.inv (Caused by NameResolutionError(": Failed to resolve 'towncrier.rtfd.io' ([Errno -3] Temporary failure in name resolution)")) loading intersphinx inventory 'cherrypy' from https://docs.cherrypy.dev/en/latest/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://cherrypy.rtfd.io/en/latest' not fetchable due to : HTTPSConnectionPool(host='cherrypy.rtfd.io', port=443): Max retries exceeded with url: /en/latest (Caused by NameResolutionError(": Failed to resolve 'cherrypy.rtfd.io' ([Errno -3] Temporary failure in name resolution)")) intersphinx inventory 'https://docs.cherrypy.dev/en/latest/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.cherrypy.dev', port=443): Max retries exceeded with url: /en/latest/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.cherrypy.dev' ([Errno -3] Temporary failure in name resolution)")) Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.__main__.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot._compat.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.cli.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.connections.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.errors.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.makefile.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.server.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.testing.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.wsgi.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.builtin.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.pyopenssl.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test._pytest_plugin.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.conftest.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.helper.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test__compat.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_cli.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_conn.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_core.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_dispatch.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_errors.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_makefile.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_server.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_ssl.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_wsgi.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.webtest.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.workers.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.workers.threadpool.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/modules.rst. locale_dir /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/locales/en/LC_MESSAGES does not exist building [mo]: targets for 0 po files that are out of date writing output... [build target] did not in env: 'devguide' [build target] did not in env: 'contributing/release_guide' [build target] did not in env: 'contributing/guidelines' [build target] did not in env: 'history' [build target] did not in env: 'index' building [html]: targets for 5 source files that are out of date updating environment: locale_dir /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/locales/en/LC_MESSAGES does not exist [app] emitting event: 'env-get-outdated'(, {'pkg/cheroot.test.conftest', 'pkg/cheroot.testing', 'pkg/cheroot.test.test_wsgi', 'devguide', 'pkg/modules', 'pkg/cheroot.errors', 'pkg/cheroot.test.test_core', 'contributing/guidelines', 'pkg/cheroot.test.test_makefile', 'pkg/cheroot', 'history', 'pkg/cheroot.ssl.builtin', 'pkg/cheroot.test.webtest', 'pkg/cheroot.ssl.pyopenssl', 'pkg/cheroot.test.test_ssl', 'pkg/cheroot.test.test_server', 'pkg/cheroot._compat', 'index', 'pkg/cheroot.test.test_cli', 'pkg/cheroot.ssl', 'pkg/cheroot.test.test__compat', 'pkg/cheroot.connections', 'pkg/cheroot.workers', 'pkg/cheroot.makefile', 'pkg/cheroot.test.test_conn', 'pkg/cheroot.test.test_dispatch', 'pkg/cheroot.__main__', 'pkg/cheroot.test._pytest_plugin', 'pkg/cheroot.test', 'pkg/cheroot.wsgi', 'contributing/release_guide', 'pkg/cheroot.test.test_errors', 'pkg/cheroot.test.helper', 'pkg/cheroot.server', 'pkg/cheroot.cli', 'pkg/cheroot.workers.threadpool'}, set(), set()) [new config] 36 added, 0 changed, 0 removed [app] emitting event: 'env-before-read-docs'(, ['contributing/guidelines', 'contributing/release_guide', 'devguide', 'history', 'index', 'pkg/cheroot', 'pkg/cheroot.__main__', 'pkg/cheroot._compat', 'pkg/cheroot.cli', 'pkg/cheroot.connections', 'pkg/cheroot.errors', 'pkg/cheroot.makefile', 'pkg/cheroot.server', 'pkg/cheroot.ssl', 'pkg/cheroot.ssl.builtin', 'pkg/cheroot.ssl.pyopenssl', 'pkg/cheroot.test', 'pkg/cheroot.test._pytest_plugin', 'pkg/cheroot.test.conftest', 'pkg/cheroot.test.helper', 'pkg/cheroot.test.test__compat', 'pkg/cheroot.test.test_cli', 'pkg/cheroot.test.test_conn', 'pkg/cheroot.test.test_core', 'pkg/cheroot.test.test_dispatch', 'pkg/cheroot.test.test_errors', 'pkg/cheroot.test.test_makefile', 'pkg/cheroot.test.test_server', 'pkg/cheroot.test.test_ssl', 'pkg/cheroot.test.test_wsgi', 'pkg/cheroot.test.webtest', 'pkg/cheroot.testing', 'pkg/cheroot.workers', 'pkg/cheroot.workers.threadpool', 'pkg/cheroot.wsgi', 'pkg/modules']) reading sources... [ 3%] contributing/guidelines [app] emitting event: 'env-purge-doc'(, 'contributing/guidelines') [app] emitting event: 'source-read'('contributing/guidelines', ['.. include:: ../../.github/CONTRIBUTING.rst\n\n\nFirst-time setup\n~~~~~~~~~~~~~~~~\n\n- You need to install `Python`_ 3 which is required for building docs.\n For example, Python 3.11.\n\n Then, `create and activate a virtual environment`_.\n And install `tox`_.\n\n- `Install git`_\n\n- `Configure git`_:\n\n1. Please, identify yourself::\n\n $ git config --global user.name "firstname lastname"\n $ git config --global user.email yourname@example.com\n\n* Use the address bound to your GitHub account so that the commits would be linked to your profile.\n\n2. Choose an editor for Git::\n\n $ git config --global core.editor vim\n\n- Create and log in to a `GitHub`_ account\n\n- `Fork`_ Cheroot to your GitHub account by clicking the Fork button\n\n- `Clone`_ your fork locally::\n\n $ git clone https://github.com/{username}/cheroot\n $ cd cheroot\n\n* Also, you can `clone`_ fork using `ssh`_::\n\n $ git clone git@github.com:{username}/cheroot.git\n $ cd cheroot\n\n- To create a new `branch`_ and switch to it::\n\n $ git checkout -b patch/some_fix\n\n.. _create and activate a virtual environment: https://docs.python.org/3/tutorial/venv.html#creating-virtual-environments\n.. _Python: https://www.python.org/\n.. _Install git: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git\n.. _Configure git: https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup\n.. _GitHub: http://github.com\n.. _Fork: https://help.github.com/articles/fork-a-repo/\n.. _Clone: https://help.github.com/articles/cloning-a-repository/\n.. _ssh: https://help.github.com/articles/connecting-to-github-with-ssh/\n.. _branch: https://www.atlassian.com/git/tutorials/using-branches\n\nWrite your code\n~~~~~~~~~~~~~~~\n\n- Please, use `PEP 8`_\n\n.. _PEP 8: https://pep8.org/\n\nOnce you finished coding, you are recommended to do the following steps:\n""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""\n\n- Run tests with `tox`_\n\nRun one test with Python3.11::\n\n $ tox -e py311 -- cheroot/test/test_name.py\n\n**``tox``** — Run all tests using the Python version where `python` command\ncurrently points to which is specified in ``tox`` settings::\n\n envlist = python\n minversion = 3.21.0\n\nRun linters and all tests against several Python interpreters::\n\n $ tox -e pre-commit,py310,py37 # etc.\n\n- Run the `pre-commit`_ linting suite::\n\n $ tox -e pre-commit\n\n- `git add`_ your files\n\n- `Write good`_ `commit messages`_ when checking in your changes to Git\n\n- `Push`_ and `create a pull request`_\n\n.. _tox: https://tox.readthedocs.io/en/latest/\n.. _pre-commit: https://github.com/pre-commit/pre-commit\n.. _git add: https://git-scm.com/docs/git-add\n.. _Write good: https://chris.beams.io/posts/git-commit/\n.. _commit messages: https://git-scm.com/docs/git-commit\n.. _Push: https://git-scm.com/docs/git-push\n.. _create a pull request: https://help.github.com/articles/creating-a-pull-request/\n\nBuilding the docs\n~~~~~~~~~~~~~~~~~\n\nTo build the docs from a checked out source, run::\n\n $ tox -e build-docs\n\nOpen the documentation:\n\n.. tabs::\n\n .. tab:: GNU/Linux\n\n ::\n\n $ xdg-open build/html/index.html\n\n .. tab:: macOS\n\n ::\n\n $ open build/html/index.html\n\n .. tab:: Windows\n\n Please, open ``build/html/index.html`` in your browser.\n\nAlso, one can serve docs using a built-in static files server.\nThis is preferable because of possible CSRF issues.::\n\n $ python3 -m http.server --directory build/html/ 8000\n\nAfter that, you can open `http://localhost:8000/ `_ in your browser.\n\nRead more about `Sphinx`_.\n\n.. _Sphinx: https://www.sphinx-doc.org\n\n.. include:: ../changelog-fragments.d/README.rst\n']) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/.github/CONTRIBUTING.rst:3: section "Contributing to |project|" gets labeled as "contributing to |project|" .github/CONTRIBUTING.rst:3: (INFO/1) Enumerated list start value not ordinal-1: “2” (ordinal 2) [filtered system message] docs/changelog-fragments.d/README.rst:4: (INFO/1) Duplicate implicit target name: “adding change notes with your prs”. [filtered system message] reading sources... [ 6%] contributing/release_guide [app] emitting event: 'env-purge-doc'(, 'contributing/release_guide') [app] emitting event: 'source-read'('contributing/release_guide', ['*************\nRelease Guide\n*************\n\nWelcome to the |project| Release Guide!\n\nThis page contains information on how to release a new version\nof |project| using the automated Continuous Delivery pipeline.\n\n.. tip::\n\n The intended audience for this document is maintainers\n and core contributors.\n\n\nPre-release activities\n======================\n\n1. Check if there are any open Pull Requests that could be\n desired in the upcoming release. If there are any — merge\n them. If some are incomplete, try to get them ready.\n Don\'t forget to review the enclosed change notes per our\n guidelines.\n2. Visually inspect the draft section of the :ref:`Change log`\n page. Make sure the content looks consistent, uses the same\n writing style, targets the end-users and adheres to our\n documented guidelines.\n Most of the change log sections will typically use the past\n tense or another way to relay the effect of the changes for\n the users, since the previous release.\n It should not target core contributors as the information\n they are normally interested in is already present in the\n Git history.\n Update the change log fragments if you see any problems with\n this change log section.\n3. If you are satisfied with the above, inspect the change log\n section categories in the draft. Presence of the breaking\n changes or features will hint you what version number\n segment to bump for the release.\n\n.. seealso::\n\n :ref:`Adding change notes with your PRs`\n Writing beautiful change logs for humans\n\n\nThe release stage\n=================\n\n1. Open the `GitHub Actions CI/CD workflow page `_ in your web browser.\n2. Click the gray button :guilabel:`Run workflow` in the blue\n banner at the top of the workflow runs list.\n3. In the form that appears, enter the version you used in the\n preparation steps, into the mandatory field. Do not prepend\n a leading-``v``. Just use the raw version number as per\n :pep:`440`.\n4. Now, click the green button :guilabel:`Run workflow`.\n5. At some point, the workflow gets to the job for publishing\n to the "production" PyPI and stops there. You will see a\n banner informing you that a deployment approval is needed.\n You will also get an email notification with the same\n information and a link to the deployment approval view.\n6. While the normal PyPI upload hasn\'t happened yet, the\n TestPyPI one proceeds. This gives you a chance to optionally\n verify what got published there and decide if you want to\n abort the process.\n7. Approve the deployment and wait for the workflow to complete.\n8. Verify that the following things got created:\n\n - a PyPI release\n - a Git tag\n - a GitHub Releases page\n - a GitHub Discussions page\n - a release pull request on GitHub\n\n9. Merge that pull request using the natural ``git merge`` strategy\n avoiding squash or rebase.\n10. Tell everyone you released a new version of |project| :)\n\n\n.. _GitHub Actions CI/CD workflow:\n https://github.com/cherrypy/cheroot/actions/workflows/ci-cd.yml\n']) [i18n] PATCH: 'docutils.nodes.term' to have rawsource: >,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/contributing/release_guide.rst:3: section "Release Guide" gets labeled as "release guide" reading sources... [ 8%] devguide [app] emitting event: 'env-purge-doc'(, 'devguide') [app] emitting event: 'source-read'('devguide', ['Development guide\n=================\n\nThis document is unfinished but you may check it out periodically to\nread some related notes.\n\nThe release process is fairly simple:\n\n1. Go to\n https://github.com/cherrypy/cheroot/actions/workflows/ci-cd.yml.\n\n2. Click ``Run workflow``.\n\n3. Fill out the form. Ideally, only use the mandatory version field.\n\n .. important::\n\n Do not change the branch to use the workflow from.\n\n4. Click green ``Run workflow`` submit button.\n\n5. Wait until the CI completes and the new version appears on PyPI.\n']) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/devguide.rst:2: section "Development guide" gets labeled as "development guide" reading sources... [ 11%] history [app] emitting event: 'env-purge-doc'(, 'history') [app] emitting event: 'source-read'('history', [':tocdepth: 2\n\n.. spelling::\n\n reproducibility\n\n**********\nChange log\n**********\n\n.. only:: not is_release\n\n *To be included in the next release*\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n .. towncrier-draft-entries:: |version| :sub:`/UNRELEASED DRAFT/`\n\n Released versions\n ^^^^^^^^^^^^^^^^^\n\n .. include:: ../CHANGES.rst\n :start-after: .. towncrier release notes start\n\n.. only:: is_release\n\n .. include:: ../CHANGES.rst\n :start-after: .. towncrier release notes start\n']) [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: tocdepth [app] emitting event: 'doctree-read'(,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:9: section "Change log" gets labeled as "change log" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:3: (INFO/1) No directive entry for “spelling” in module “docutils.parsers.rst.languages.en”. Trying “spelling” as canonical directive name. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:3: (ERROR/3) Unknown directive type “spelling”. .. spelling:: reproducibility [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:16: (INFO/1) No directive entry for “towncrier-draft-entries” in module “docutils.parsers.rst.languages.en”. Trying “towncrier-draft-entries” as canonical directive name. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:16: (ERROR/3) Unknown directive type “towncrier-draft-entries”. .. towncrier-draft-entries:: |version| :sub:`/UNRELEASED DRAFT/` [filtered system message] CHANGES.rst:51: (INFO/1) Duplicate implicit target name: “features”. [filtered system message] CHANGES.rst:114: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:185: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:229: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:4: (INFO/1) Duplicate implicit target name: “v11.1.0”. [filtered system message] CHANGES.rst:10: (INFO/1) Duplicate implicit target name: “features”. [filtered system message] CHANGES.rst:20: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:45: (INFO/1) Duplicate implicit target name: “v11.0.0”. [filtered system message] CHANGES.rst:51: (INFO/1) Duplicate implicit target name: “features”. [filtered system message] CHANGES.rst:63: (INFO/1) Duplicate implicit target name: “removals and backward incompatible breaking changes”. [filtered system message] CHANGES.rst:78: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:114: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:150: (INFO/1) Duplicate implicit target name: “v10.0.1”. [filtered system message] CHANGES.rst:156: (INFO/1) Duplicate implicit target name: “bug fixes”. [filtered system message] CHANGES.rst:185: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:229: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:311: (INFO/1) Duplicate implicit target name: “v10.0.0”. [filtered system message] CHANGES.rst:321: (INFO/1) Duplicate implicit target name: “v9.0.0”. [filtered system message] CHANGES.rst:332: (INFO/1) Duplicate implicit target name: “v8.6.0”. [filtered system message] CHANGES.rst:367: (INFO/1) Duplicate implicit target name: “v8.5.2”. [filtered system message] CHANGES.rst:378: (INFO/1) Duplicate implicit target name: “v8.5.1”. [filtered system message] CHANGES.rst:395: (INFO/1) Duplicate implicit target name: “v8.5.0”. [filtered system message] CHANGES.rst:409: (INFO/1) Duplicate implicit target name: “v8.4.8”. [filtered system message] CHANGES.rst:419: (INFO/1) Duplicate implicit target name: “v8.4.7”. [filtered system message] CHANGES.rst:428: (INFO/1) Duplicate implicit target name: “v8.4.6”. [filtered system message] CHANGES.rst:441: (INFO/1) Duplicate implicit target name: “v8.4.5”. [filtered system message] CHANGES.rst:456: (INFO/1) Duplicate implicit target name: “v8.4.4”. [filtered system message] CHANGES.rst:471: (INFO/1) Duplicate implicit target name: “v8.4.3”. [filtered system message] CHANGES.rst:487: (INFO/1) Duplicate implicit target name: “v8.4.2”. [filtered system message] CHANGES.rst:499: (INFO/1) Duplicate implicit target name: “v8.4.1”. [filtered system message] CHANGES.rst:509: (INFO/1) Duplicate implicit target name: “v8.4.0”. [filtered system message] CHANGES.rst:521: (INFO/1) Duplicate implicit target name: “v8.3.1”. [filtered system message] CHANGES.rst:531: (INFO/1) Duplicate implicit target name: “v8.3.0”. [filtered system message] CHANGES.rst:542: (INFO/1) Duplicate implicit target name: “v8.2.1”. [filtered system message] CHANGES.rst:551: (INFO/1) Duplicate implicit target name: “v8.2.0”. [filtered system message] CHANGES.rst:562: (INFO/1) Duplicate implicit target name: “v8.1.0”. [filtered system message] CHANGES.rst:572: (INFO/1) Duplicate implicit target name: “v8.0.0”. [filtered system message] CHANGES.rst:585: (INFO/1) Duplicate implicit target name: “v7.0.0”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “retry_call”. [filtered system message] CHANGES.rst:597: (INFO/1) Duplicate implicit target name: “v6.6.0”. [filtered system message] CHANGES.rst:609: (INFO/1) Duplicate implicit target name: “v6.5.8”. [filtered system message] CHANGES.rst:619: (INFO/1) Duplicate implicit target name: “v6.5.7”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “abstract namespace sockets”. [filtered system message] CHANGES.rst:633: (INFO/1) Duplicate implicit target name: “v6.5.6”. [filtered system message] CHANGES.rst:642: (INFO/1) Duplicate implicit target name: “v6.5.5”. [filtered system message] CHANGES.rst:654: (INFO/1) Duplicate implicit target name: “v6.5.4”. [filtered system message] CHANGES.rst:694: (INFO/1) Duplicate implicit target name: “v6.5.3”. [filtered system message] CHANGES.rst:702: (INFO/1) Duplicate implicit target name: “v6.5.2”. [filtered system message] CHANGES.rst:715: (INFO/1) Duplicate implicit target name: “v6.5.1”. [filtered system message] CHANGES.rst:725: (INFO/1) Duplicate implicit target name: “v6.5.0”. [filtered system message] CHANGES.rst:734: (INFO/1) Duplicate implicit target name: “v6.4.0”. [filtered system message] CHANGES.rst:745: (INFO/1) Duplicate implicit target name: “v6.3.3”. [filtered system message] CHANGES.rst:754: (INFO/1) Duplicate implicit target name: “v6.3.2”. [filtered system message] CHANGES.rst:763: (INFO/1) Duplicate implicit target name: “v6.3.1”. [filtered system message] CHANGES.rst:772: (INFO/1) Duplicate implicit target name: “v6.3.0”. [filtered system message] CHANGES.rst:781: (INFO/1) Duplicate implicit target name: “v6.2.4”. [filtered system message] CHANGES.rst:795: (INFO/1) Duplicate implicit target name: “v6.2.3”. [filtered system message] CHANGES.rst:804: (INFO/1) Duplicate implicit target name: “v6.2.2”. [filtered system message] CHANGES.rst:813: (INFO/1) Duplicate implicit target name: “v6.2.1”. [filtered system message] CHANGES.rst:823: (INFO/1) Duplicate implicit target name: “v6.2.0”. [filtered system message] CHANGES.rst:847: (INFO/1) Duplicate implicit target name: “v6.1.2”. [filtered system message] CHANGES.rst:859: (INFO/1) Duplicate implicit target name: “v6.1.1”. [filtered system message] CHANGES.rst:870: (INFO/1) Duplicate implicit target name: “v6.1.0”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “@mitsuhiko”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “wsgi.input_terminated proposal”. [filtered system message] CHANGES.rst:900: (INFO/1) Duplicate implicit target name: “v6.0.0”. [filtered system message] CHANGES.rst:911: (INFO/1) Duplicate implicit target name: “v5.11.0”. [filtered system message] CHANGES.rst:924: (INFO/1) Duplicate implicit target name: “v5.10.0”. [filtered system message] CHANGES.rst:937: (INFO/1) Duplicate implicit target name: “v5.9.2”. [filtered system message] CHANGES.rst:945: (INFO/1) Duplicate implicit target name: “v5.9.1”. [filtered system message] CHANGES.rst:954: (INFO/1) Duplicate implicit target name: “v5.9.0”. [filtered system message] CHANGES.rst:971: (INFO/1) Duplicate implicit target name: “v5.8.3”. [filtered system message] CHANGES.rst:991: (INFO/1) Duplicate implicit target name: “v5.8.2”. [filtered system message] CHANGES.rst:1001: (INFO/1) Duplicate implicit target name: “v5.8.1”. [filtered system message] CHANGES.rst:1016: (INFO/1) Duplicate implicit target name: “v5.8.0”. [filtered system message] CHANGES.rst:1042: (INFO/1) Duplicate implicit target name: “v5.7.0”. [filtered system message] CHANGES.rst:1082: (INFO/1) Duplicate implicit target name: “v5.6.0”. [filtered system message] CHANGES.rst:1099: (INFO/1) Duplicate implicit target name: “v5.5.2”. [filtered system message] CHANGES.rst:1112: (INFO/1) Duplicate implicit target name: “v5.5.1”. [filtered system message] CHANGES.rst:1132: (INFO/1) Duplicate implicit target name: “v5.5.0”. [filtered system message] CHANGES.rst:1154: (INFO/1) Duplicate implicit target name: “v5.4.0”. [filtered system message] CHANGES.rst:1162: (INFO/1) Duplicate implicit target name: “v5.3.0”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “jaraco skeleton”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “deployed at rtd”. [filtered system message] CHANGES.rst:1176: (INFO/1) Duplicate implicit target name: “v5.2.0”. [filtered system message] CHANGES.rst:1190: (INFO/1) Duplicate implicit target name: “v5.1.0”. [filtered system message] CHANGES.rst:1205: (INFO/1) Duplicate implicit target name: “v5.0.1”. [filtered system message] CHANGES.rst:1213: (INFO/1) Duplicate implicit target name: “v5.0.0”. [filtered system message] reading sources... [ 14%] index [app] emitting event: 'env-purge-doc'(, 'index') [app] emitting event: 'source-read'('index', ['Welcome to Cheroot documentation!\n=================================\n\n.. include:: ../README.rst\n\n.. toctree::\n :maxdepth: 1\n :glob:\n\n history\n\n.. toctree::\n :caption: Contributing\n\n contributing/guidelines\n\n.. toctree::\n :caption: Maintenance\n\n contributing/release_guide\n\n.. toctree::\n :caption: Reference\n\n devguide\n Private (dev) API autodoc \n\n\n`Cheroot `_ is the high-performance,\npure-Python HTTP server used by `CherryPy `_.\n\n\nIndices and tables\n==================\n\n* :ref:`genindex`\n* :ref:`modindex`\n* :ref:`search`\n']) [app] emitting event: 'doctree-read'(
,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/index.rst:2: section "Welcome to Cheroot documentation!" gets labeled as "welcome to cheroot documentation!" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/README.rst:53: section "Status" gets labeled as "status" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/README.rst:59: section "For Enterprise" gets labeled as "for enterprise" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/README.rst:86: section "Contribute Cheroot" gets labeled as "contribute cheroot" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/README.rst:100: section "License" gets labeled as "license" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/index.rst:34: section "Indices and tables" gets labeled as "indices and tables" reading sources... [ 17%] pkg/cheroot [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot') [app] emitting event: 'source-read'('pkg/cheroot', ['cheroot package\n===============\n\nSubpackages\n-----------\n\n.. toctree::\n :maxdepth: 4\n\n cheroot.ssl\n cheroot.test\n cheroot.workers\n\nSubmodules\n----------\n\n.. toctree::\n :maxdepth: 4\n\n cheroot.__main__\n cheroot._compat\n cheroot.cli\n cheroot.connections\n cheroot.errors\n cheroot.makefile\n cheroot.server\n cheroot.testing\n cheroot.wsgi\n\nModule contents\n---------------\n\n.. automodule:: cheroot\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.rst:33: input: .. automodule:: cheroot :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot [autodoc] import cheroot => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['High-performance, pure-Python HTTP server used by CherryPy.', '']) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/__init__.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'High-performance, pure-Python HTTP server used by CherryPy.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__init__.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f4622b32cf0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot'], True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f4622b32cf0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot']), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__version__', '11.1.0', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'metadata', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] output: .. py:module:: cheroot High-performance, pure-Python HTTP server used by CherryPy. [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.rst:2: section "cheroot package" gets labeled as "cheroot package" reading sources... [ 19%] pkg/cheroot.__main__ [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.__main__') [app] emitting event: 'source-read'('pkg/cheroot.__main__', ['cheroot.\\_\\_main\\_\\_ module\n===========================\n\n.. automodule:: cheroot.__main__\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.__main__.rst:4: input: .. automodule:: cheroot.__main__ :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.__main__ [autodoc] import cheroot.__main__ => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.__main__', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.__main__', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Stub for accessing the Cheroot CLI tool.', '']) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/__main__.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Stub for accessing the Cheroot CLI tool.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__main__.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f4622b32f90>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.__main__', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.__main__', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f4622b32f90>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__main__.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'main', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.__main__ import main [autodoc] import cheroot.__main__ => [autodoc] getattr(_, 'main') [autodoc] => [autodoc] output: .. py:module:: cheroot.__main__ Stub for accessing the Cheroot CLI tool. [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.__main__.rst:2: section "cheroot.\_\_main\_\_ module" gets labeled as "cheroot.\_\_main\_\_ module" reading sources... [ 22%] pkg/cheroot._compat [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot._compat') [app] emitting event: 'source-read'('pkg/cheroot._compat', ['cheroot.\\_compat module\n=======================\n\n.. automodule:: cheroot._compat\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot._compat.rst:4: input: .. automodule:: cheroot._compat :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot._compat [autodoc] import cheroot._compat => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot._compat', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot._compat', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Compatibility code for using Cheroot with various versions of Python.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL10', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL31', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_CI', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_GITHUB_ACTIONS_WORKFLOW', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PPC', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYPY', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SOLARIS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PLATFORM_ARCH', 'x86_64', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SYS_PLATFORM', 'Linux', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/_compat.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Compatibility code for using Cheroot with various versions of Python.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/_compat.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f9250>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot._compat', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot._compat', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f9250>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/_compat.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'assert_native', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'extract_bytes', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntou', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'platform', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot._compat import assert_native [autodoc] import cheroot._compat => [autodoc] getattr(_, 'assert_native') [autodoc] => [autodoc] from cheroot._compat import bton [autodoc] import cheroot._compat => [autodoc] getattr(_, 'bton') [autodoc] => [autodoc] from cheroot._compat import extract_bytes [autodoc] import cheroot._compat => [autodoc] getattr(_, 'extract_bytes') [autodoc] => [autodoc] from cheroot._compat import ntob [autodoc] import cheroot._compat => [autodoc] getattr(_, 'ntob') [autodoc] => [autodoc] from cheroot._compat import ntou [autodoc] import cheroot._compat => [autodoc] getattr(_, 'ntou') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.assert_native', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(n)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.assert_native', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check whether the input is of native :py:class:`str` type.', '', 'Raises:', ' TypeError: in case of failed check', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.bton', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(b, encoding='ISO-8859-1')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.bton', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the byte string as native string in the given encoding.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.extract_bytes', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(mv)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.extract_bytes', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Retrieve bytes out of the given input buffer.', '', ':param mv: input :py:func:`buffer`', ':type mv: memoryview or bytes', '', ':return: unwrapped bytes', ':rtype: bytes', '', ':raises ValueError: if the input is not one of \\', ' :py:class:`memoryview`/:py:func:`buffer` \\', ' or :py:class:`bytes`', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.ntob', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(n, encoding='ISO-8859-1')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.ntob', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the native string as bytes in the given encoding.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.ntou', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(n, encoding='ISO-8859-1')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.ntou', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the native string as Unicode with the given encoding.', '']) [autodoc] output: .. py:module:: cheroot._compat Compatibility code for using Cheroot with various versions of Python. .. py:function:: assert_native(n) :module: cheroot._compat Check whether the input is of native :py:class:`str` type. Raises: TypeError: in case of failed check .. py:function:: bton(b, encoding='ISO-8859-1') :module: cheroot._compat Return the byte string as native string in the given encoding. .. py:function:: extract_bytes(mv) :module: cheroot._compat Retrieve bytes out of the given input buffer. :param mv: input :py:func:`buffer` :type mv: memoryview or bytes :return: unwrapped bytes :rtype: bytes :raises ValueError: if the input is not one of \ :py:class:`memoryview`/:py:func:`buffer` \ or :py:class:`bytes` .. py:function:: ntob(n, encoding='ISO-8859-1') :module: cheroot._compat Return the native string as bytes in the given encoding. .. py:function:: ntou(n, encoding='ISO-8859-1') :module: cheroot._compat Return the native string as Unicode with the given encoding. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Raises: [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Raises [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot._compat.rst:2: section "cheroot.\_compat module" gets labeled as "cheroot.\_compat module" reading sources... [ 25%] pkg/cheroot.cli [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.cli') [app] emitting event: 'source-read'('pkg/cheroot.cli', ['cheroot.cli module\n==================\n\n.. automodule:: cheroot.cli\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.cli.rst:4: input: .. automodule:: cheroot.cli :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.cli [autodoc] import cheroot.cli => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.cli', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.cli', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Command line tool for starting a Cheroot WSGI/HTTP server instance.', '', 'Basic usage:', '', '.. code-block:: shell-session', '', ' $ # Start a server on 127.0.0.1:8000 with the default settings', ' $ # for the WSGI app myapp/wsgi.py:application()', ' $ cheroot myapp.wsgi', '', ' $ # Start a server on 0.0.0.0:9000 with 8 threads', ' $ # for the WSGI app myapp/wsgi.py:main_app()', ' $ cheroot myapp.wsgi:main_app --bind 0.0.0.0:9000 --threads 8', '', ' $ # Start a server for the cheroot.server.Gateway subclass', ' $ # myapp/gateway.py:HTTPGateway', ' $ cheroot myapp.gateway:HTTPGateway', '', ' $ # Start a server on the UNIX socket /var/spool/myapp.sock', ' $ cheroot myapp.wsgi --bind /var/spool/myapp.sock', '', ' $ # Start a server on the abstract UNIX socket CherootServer', ' $ cheroot myapp.wsgi --bind @CherootServer', '', '.. spelling::', '', ' cli', '']) [app] emitting event: 'autodoc-skip-member'('module', 'AbstractSocket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Application', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'BindLocation', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'GatewayYo', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'TCPSocket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'UnixSocket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/cli.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Command line tool for starting a Cheroot WSGI/HTTP server instance.\n\nBasic usage:\n\n.. code-block:: shell-session\n\n $ # Start a server on 127.0.0.1:8000 with the default settings\n $ # for the WSGI app myapp/wsgi.py:application()\n $ cheroot myapp.wsgi\n\n $ # Start a server on 0.0.0.0:9000 with 8 threads\n $ # for the WSGI app myapp/wsgi.py:main_app()\n $ cheroot myapp.wsgi:main_app --bind 0.0.0.0:9000 --threads 8\n\n $ # Start a server for the cheroot.server.Gateway subclass\n $ # myapp/gateway.py:HTTPGateway\n $ cheroot myapp.gateway:HTTPGateway\n\n $ # Start a server on the UNIX socket /var/spool/myapp.sock\n $ cheroot myapp.wsgi --bind /var/spool/myapp.sock\n\n $ # Start a server on the abstract UNIX socket CherootServer\n $ cheroot myapp.wsgi --bind @CherootServer\n\n.. spelling::\n\n cli\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/cli.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8050>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.cli', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8050>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/cli.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_arg_spec', {'_wsgi_app': {'metavar': 'APP_MODULE', 'type': >, 'help': 'WSGI application callable or cheroot.server.Gateway subclass'}, '--bind': {'metavar': 'ADDRESS', 'dest': 'bind_addr', 'type': , 'default': '[::1]:8000', 'help': 'Network interface to listen on (default: [::1]:8000)'}, '--chdir': {'metavar': 'PATH', 'type': , 'help': 'Set the working directory'}, '--server-name': {'dest': 'server_name', 'type': , 'help': 'Web server name to be advertised via Server HTTP header'}, '--threads': {'metavar': 'INT', 'dest': 'numthreads', 'type': , 'help': 'Minimum number of worker threads'}, '--max-threads': {'metavar': 'INT', 'dest': 'max', 'type': , 'help': 'Maximum number of worker threads'}, '--timeout': {'metavar': 'INT', 'dest': 'timeout', 'type': , 'help': 'Timeout in seconds for accepted connections'}, '--shutdown-timeout': {'metavar': 'INT', 'dest': 'shutdown_timeout', 'type': , 'help': 'Time in seconds to wait for worker threads to cleanly exit'}, '--request-queue-size': {'metavar': 'INT', 'dest': 'request_queue_size', 'type': , 'help': 'Maximum number of queued connections'}, '--accepted-queue-size': {'metavar': 'INT', 'dest': 'accepted_queue_size', 'type': , 'help': 'Maximum number of active requests in queue'}, '--accepted-queue-timeout': {'metavar': 'INT', 'dest': 'accepted_queue_timeout', 'type': , 'help': 'Timeout in seconds for putting requests into queue'}}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'argparse', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'import_module', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'main', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'parse_wsgi_bind_addr', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'parse_wsgi_bind_location', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'suppress', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.cli import AbstractSocket [autodoc] import cheroot.cli => [autodoc] getattr(_, 'AbstractSocket') [autodoc] => [autodoc] from cheroot.cli import Application [autodoc] import cheroot.cli => [autodoc] getattr(_, 'Application') [autodoc] => [autodoc] from cheroot.cli import BindLocation [autodoc] import cheroot.cli => [autodoc] getattr(_, 'BindLocation') [autodoc] => [autodoc] from cheroot.cli import GatewayYo [autodoc] import cheroot.cli => [autodoc] getattr(_, 'GatewayYo') [autodoc] => [autodoc] from cheroot.cli import TCPSocket [autodoc] import cheroot.cli => [autodoc] getattr(_, 'TCPSocket') [autodoc] => [autodoc] from cheroot.cli import UnixSocket [autodoc] import cheroot.cli => [autodoc] getattr(_, 'UnixSocket') [autodoc] => [autodoc] from cheroot.cli import import_module [autodoc] import cheroot.cli => [autodoc] getattr(_, 'import_module') [autodoc] => [autodoc] from cheroot.cli import main [autodoc] import cheroot.cli => [autodoc] getattr(_, 'main') [autodoc] => [autodoc] from cheroot.cli import parse_wsgi_bind_addr [autodoc] import cheroot.cli => [autodoc] getattr(_, 'parse_wsgi_bind_addr') [autodoc] => [autodoc] from cheroot.cli import parse_wsgi_bind_location [autodoc] import cheroot.cli => [autodoc] getattr(_, 'parse_wsgi_bind_location') [autodoc] => [autodoc] from cheroot.cli import suppress [autodoc] import cheroot.cli => [autodoc] getattr(_, 'suppress') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.AbstractSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(abstract_socket)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.AbstractSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.AbstractSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['AbstractSocket.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'AbstractSocket.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 66, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bind_addr',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.Application', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(wsgi_app)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.Application', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.Application', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Application.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.cli', '__firstlineno__': 74, '__doc__': 'Application.', 'resolve': )>, '__init__': , 'server_args': , 'server': , '__static_attributes__': ('wsgi_app',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Application.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 74, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('wsgi_app',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'resolve', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'server_args', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.cli import Application.resolve [autodoc] import cheroot.cli => [autodoc] getattr(_, 'Application') [autodoc] => [autodoc] getattr(_, 'resolve') [autodoc] => > [autodoc] from cheroot.cli import Application.server [autodoc] import cheroot.cli => [autodoc] getattr(_, 'Application') [autodoc] => [autodoc] getattr(_, 'server') [autodoc] => [autodoc] from cheroot.cli import Application.server_args [autodoc] import cheroot.cli => [autodoc] getattr(_, 'Application') [autodoc] => [autodoc] getattr(_, 'server_args') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.cli.Application.resolve', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(full_path)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.Application.resolve', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read WSGI app/Gateway path string and import application module.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.cli.Application.server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(parsed_args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.Application.server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.cli.Application.server_args', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(parsed_args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.Application.server_args', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return keyword arguments for Server class.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.BindLocation', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.BindLocation', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.BindLocation', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A class for storing the bind location for a Cheroot instance.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.cli', '__firstlineno__': 40, '__doc__': 'A class for storing the bind location for a Cheroot instance.', '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A class for storing the bind location for a Cheroot instance.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 40, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.GatewayYo', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(gateway)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.GatewayYo', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.GatewayYo', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Gateway.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.cli', '__firstlineno__': 113, '__doc__': 'Gateway.', '__init__': , 'server': , '__static_attributes__': ('gateway',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Gateway.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 113, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('gateway',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.cli import GatewayYo.server [autodoc] import cheroot.cli => [autodoc] getattr(_, 'GatewayYo') [autodoc] => [autodoc] getattr(_, 'server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.cli.GatewayYo.server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(parsed_args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.GatewayYo.server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.TCPSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(address, port)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.TCPSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.TCPSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['TCPSocket.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'TCPSocket.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 44, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bind_addr',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.UnixSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(path)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.UnixSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.UnixSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['UnixSocket.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'UnixSocket.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 58, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bind_addr',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.cli.main', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.cli.main', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create a new Cheroot instance with arguments from the command line.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.cli.parse_wsgi_bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr_string)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.cli.parse_wsgi_bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Convert bind address string to bind address parameter.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.cli.parse_wsgi_bind_location', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr_string)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.cli.parse_wsgi_bind_location', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Convert bind address string to a BindLocation.', '']) [autodoc] output: .. py:module:: cheroot.cli Command line tool for starting a Cheroot WSGI/HTTP server instance. Basic usage: .. code-block:: shell-session $ # Start a server on 127.0.0.1:8000 with the default settings $ # for the WSGI app myapp/wsgi.py:application() $ cheroot myapp.wsgi $ # Start a server on 0.0.0.0:9000 with 8 threads $ # for the WSGI app myapp/wsgi.py:main_app() $ cheroot myapp.wsgi:main_app --bind 0.0.0.0:9000 --threads 8 $ # Start a server for the cheroot.server.Gateway subclass $ # myapp/gateway.py:HTTPGateway $ cheroot myapp.gateway:HTTPGateway $ # Start a server on the UNIX socket /var/spool/myapp.sock $ cheroot myapp.wsgi --bind /var/spool/myapp.sock $ # Start a server on the abstract UNIX socket CherootServer $ cheroot myapp.wsgi --bind @CherootServer .. spelling:: cli .. py:class:: AbstractSocket(abstract_socket) :module: cheroot.cli Bases: :py:class:`~cheroot.cli.BindLocation` AbstractSocket. .. py:class:: Application(wsgi_app) :module: cheroot.cli Bases: :py:class:`object` Application. .. py:method:: Application.resolve(full_path) :module: cheroot.cli :classmethod: Read WSGI app/Gateway path string and import application module. .. py:method:: Application.server(parsed_args) :module: cheroot.cli Server. .. py:method:: Application.server_args(parsed_args) :module: cheroot.cli Return keyword arguments for Server class. .. py:class:: BindLocation() :module: cheroot.cli Bases: :py:class:`object` A class for storing the bind location for a Cheroot instance. .. py:class:: GatewayYo(gateway) :module: cheroot.cli Bases: :py:class:`object` Gateway. .. py:method:: GatewayYo.server(parsed_args) :module: cheroot.cli Server. .. py:class:: TCPSocket(address, port) :module: cheroot.cli Bases: :py:class:`~cheroot.cli.BindLocation` TCPSocket. .. py:class:: UnixSocket(path) :module: cheroot.cli Bases: :py:class:`~cheroot.cli.BindLocation` UnixSocket. .. py:function:: main() :module: cheroot.cli Create a new Cheroot instance with arguments from the command line. .. py:function:: parse_wsgi_bind_addr(bind_addr_string) :module: cheroot.cli Convert bind address string to bind address parameter. .. py:function:: parse_wsgi_bind_location(bind_addr_string) :module: cheroot.cli Convert bind address string to a BindLocation. [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.cli.rst:2: section "cheroot.cli module" gets labeled as "cheroot.cli module" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/cli.py:docstring of cheroot.cli:22: (INFO/1) No directive entry for “spelling” in module “docutils.parsers.rst.languages.en”. Trying “spelling” as canonical directive name. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/cli.py:docstring of cheroot.cli:25: (ERROR/3) Unknown directive type “spelling”. .. spelling:: cli [filtered system message] reading sources... [ 28%] pkg/cheroot.connections [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.connections') [app] emitting event: 'source-read'('pkg/cheroot.connections', ['cheroot.connections module\n==========================\n\n.. automodule:: cheroot.connections\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.connections.rst:4: input: .. automodule:: cheroot.connections :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.connections [autodoc] import cheroot.connections => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Utilities to manage open connections.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ConnectionManager', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'MakeFile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_ThreadsafeSelector', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/connections.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Utilities to manage open connections.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/connections.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8ef0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.connections', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.connections', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8ef0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/connections.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'fcntl', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'io', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'prevent_socket_inheritance', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'selectors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'suppress', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.connections import ConnectionManager [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] from cheroot.connections import MakeFile [autodoc] import cheroot.connections => [autodoc] getattr(_, 'MakeFile') [autodoc] => [autodoc] from cheroot.connections import _ThreadsafeSelector [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] from cheroot.connections import prevent_socket_inheritance [autodoc] import cheroot.connections => [autodoc] getattr(_, 'prevent_socket_inheritance') [autodoc] => [autodoc] from cheroot.connections import suppress [autodoc] import cheroot.connections => [autodoc] getattr(_, 'suppress') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.connections.ConnectionManager', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.connections.ConnectionManager', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.connections.ConnectionManager', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Class which manages HTTPConnection objects.', '', 'This is for connections which are being kept-alive for follow-up requests.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.connections', '__firstlineno__': 115, '__doc__': 'Class which manages HTTPConnection objects.\n\nThis is for connections which are being kept-alive for follow-up requests.\n', '__init__': , 'put': , '_expire': , 'stop': , 'run': , '_run': , '_remove_invalid_sockets': , '_from_server_socket': , 'close': , '_num_connections': , 'can_add_keepalive_connection': , '__static_attributes__': ('_selector', '_serving', '_stop_requested', 'server'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Class which manages HTTPConnection objects.\n\nThis is for connections which are being kept-alive for follow-up requests.\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 115, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.connections', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_selector', '_serving', '_stop_requested', 'server'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_expire', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_from_server_socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_num_connections', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_remove_invalid_sockets', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_run', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'can_add_keepalive_connection', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'put', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'run', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'stop', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.connections import ConnectionManager._expire [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_expire') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager._from_server_socket [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_from_server_socket') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager._num_connections [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_num_connections') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager._remove_invalid_sockets [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_remove_invalid_sockets') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager._run [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_run') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager.can_add_keepalive_connection [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'can_add_keepalive_connection') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager.close [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager.put [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'put') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager.run [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'run') [autodoc] => [autodoc] from cheroot.connections import ConnectionManager.stop [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'stop') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._expire', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(threshold)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._expire', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Expire least recently used connections.', '', ':param threshold: Connections that have not been used within this \\', ' duration (in seconds), are considered expired and \\', ' are closed and removed.', ':type threshold: float', '', 'This should be called periodically.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._from_server_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server_socket)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._from_server_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.connections.ConnectionManager._num_connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.connections.ConnectionManager._num_connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the current number of connections.', '', 'Includes all connections registered with the selector,', 'minus one for the server socket, which is always registered', 'with the selector.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._remove_invalid_sockets', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._remove_invalid_sockets', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Clean up the resources of any broken connections.', '', 'This method attempts to detect any connections in an invalid state,', 'unregisters them from the selector and closes the file descriptors of', 'the corresponding network sockets where possible.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._run', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(expiration_interval)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._run', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Run connection handler loop until stop was requested.', '', ':param expiration_interval: Interval, in seconds, at which \\', ' connections will be checked for \\', ' expiration.', ':type expiration_interval: float', '', 'Use ``expiration_interval`` as ``select()`` timeout', 'to assure expired connections are closed in time.', '', 'On Windows cap the timeout to 0.05 seconds', 'as ``select()`` does not return when a socket is ready.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.connections.ConnectionManager.can_add_keepalive_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.connections.ConnectionManager.can_add_keepalive_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Flag whether it is allowed to add a new keep-alive connection.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Close all monitored connections.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager.put', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.put', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Put idle connection into the ConnectionManager to be managed.', '', ':param conn: HTTP connection to be managed', ':type conn: cheroot.server.HTTPConnection', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager.run', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(expiration_interval)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.run', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Run the connections selector indefinitely.', '', 'Args:', ' expiration_interval (float): Interval, in seconds, at which', ' connections will be checked for expiration.', '', 'Connections that are ready to process are submitted via', 'self.server.process_conn()', '', 'Connections submitted for processing must be `put()`', 'back if they should be examined again for another request.', '', 'Can be shut down by calling `stop()`.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager.stop', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.stop', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Stop the selector loop in run() synchronously.', '', 'May take up to half a second.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.connections._ThreadsafeSelector', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.connections._ThreadsafeSelector', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.connections._ThreadsafeSelector', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Thread-safe wrapper around a DefaultSelector.', '', 'There are 2 thread contexts in which it may be accessed:', ' * the selector thread', ' * one of the worker threads in workers/threadpool.py', '', 'The expected read/write patterns are:', ' * :py:func:`~iter`: selector thread', ' * :py:meth:`register`: selector thread and threadpool,', ' via :py:meth:`~cheroot.workers.threadpool.ThreadPool.put`', ' * :py:meth:`unregister`: selector thread only', '', 'Notably, this means :py:class:`_ThreadsafeSelector` never needs to worry', 'that connections will be removed behind its back.', '', 'The lock is held when iterating or modifying the selector but is not', 'required when :py:meth:`select()ing ` on it.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.connections', '__firstlineno__': 52, '__doc__': 'Thread-safe wrapper around a DefaultSelector.\n\nThere are 2 thread contexts in which it may be accessed:\n * the selector thread\n * one of the worker threads in workers/threadpool.py\n\nThe expected read/write patterns are:\n * :py:func:`~iter`: selector thread\n * :py:meth:`register`: selector thread and threadpool,\n via :py:meth:`~cheroot.workers.threadpool.ThreadPool.put`\n * :py:meth:`unregister`: selector thread only\n\nNotably, this means :py:class:`_ThreadsafeSelector` never needs to worry\nthat connections will be removed behind its back.\n\nThe lock is held when iterating or modifying the selector but is not\nrequired when :py:meth:`select()ing ` on it.\n', '__init__': , '__len__': , 'connections': , 'register': , 'unregister': , 'select': , 'close': , '__static_attributes__': ('_lock', '_selector'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Thread-safe wrapper around a DefaultSelector.\n\nThere are 2 thread contexts in which it may be accessed:\n * the selector thread\n * one of the worker threads in workers/threadpool.py\n\nThe expected read/write patterns are:\n * :py:func:`~iter`: selector thread\n * :py:meth:`register`: selector thread and threadpool,\n via :py:meth:`~cheroot.workers.threadpool.ThreadPool.put`\n * :py:meth:`unregister`: selector thread only\n\nNotably, this means :py:class:`_ThreadsafeSelector` never needs to worry\nthat connections will be removed behind its back.\n\nThe lock is held when iterating or modifying the selector but is not\nrequired when :py:meth:`select()ing ` on it.\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 52, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__len__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.connections', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_lock', '_selector'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'connections', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'register', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'select', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'unregister', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.connections import _ThreadsafeSelector.close [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [autodoc] from cheroot.connections import _ThreadsafeSelector.connections [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'connections') [autodoc] => [autodoc] from cheroot.connections import _ThreadsafeSelector.register [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'register') [autodoc] => [autodoc] from cheroot.connections import _ThreadsafeSelector.select [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'select') [autodoc] => [autodoc] from cheroot.connections import _ThreadsafeSelector.unregister [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'unregister') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections._ThreadsafeSelector.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Close the selector.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.connections._ThreadsafeSelector.connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.connections._ThreadsafeSelector.connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Retrieve connections registered with the selector.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections._ThreadsafeSelector.register', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(fileobj, events, data=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.register', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Register ``fileobj`` with the selector.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections._ThreadsafeSelector.select', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(timeout=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.select', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return socket fd and data pairs from selectors.select call.', '', 'Returns entries ready to read in the form:', ' (socket_file_descriptor, connection)', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections._ThreadsafeSelector.unregister', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(fileobj)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.unregister', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Unregister ``fileobj`` from the selector.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.connections.prevent_socket_inheritance', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.connections.prevent_socket_inheritance', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Mark the given socket fd as non-inheritable (POSIX).', '']) [autodoc] output: .. py:module:: cheroot.connections Utilities to manage open connections. .. py:class:: ConnectionManager(server) :module: cheroot.connections Bases: :py:class:`object` Class which manages HTTPConnection objects. This is for connections which are being kept-alive for follow-up requests. .. py:method:: ConnectionManager._expire(threshold) :module: cheroot.connections Expire least recently used connections. :param threshold: Connections that have not been used within this \ duration (in seconds), are considered expired and \ are closed and removed. :type threshold: float This should be called periodically. .. py:method:: ConnectionManager._from_server_socket(server_socket) :module: cheroot.connections .. py:property:: ConnectionManager._num_connections :module: cheroot.connections Return the current number of connections. Includes all connections registered with the selector, minus one for the server socket, which is always registered with the selector. .. py:method:: ConnectionManager._remove_invalid_sockets() :module: cheroot.connections Clean up the resources of any broken connections. This method attempts to detect any connections in an invalid state, unregisters them from the selector and closes the file descriptors of the corresponding network sockets where possible. .. py:method:: ConnectionManager._run(expiration_interval) :module: cheroot.connections Run connection handler loop until stop was requested. :param expiration_interval: Interval, in seconds, at which \ connections will be checked for \ expiration. :type expiration_interval: float Use ``expiration_interval`` as ``select()`` timeout to assure expired connections are closed in time. On Windows cap the timeout to 0.05 seconds as ``select()`` does not return when a socket is ready. .. py:property:: ConnectionManager.can_add_keepalive_connection :module: cheroot.connections Flag whether it is allowed to add a new keep-alive connection. .. py:method:: ConnectionManager.close() :module: cheroot.connections Close all monitored connections. .. py:method:: ConnectionManager.put(conn) :module: cheroot.connections Put idle connection into the ConnectionManager to be managed. :param conn: HTTP connection to be managed :type conn: cheroot.server.HTTPConnection .. py:method:: ConnectionManager.run(expiration_interval) :module: cheroot.connections Run the connections selector indefinitely. Args: expiration_interval (float): Interval, in seconds, at which connections will be checked for expiration. Connections that are ready to process are submitted via self.server.process_conn() Connections submitted for processing must be `put()` back if they should be examined again for another request. Can be shut down by calling `stop()`. .. py:method:: ConnectionManager.stop() :module: cheroot.connections Stop the selector loop in run() synchronously. May take up to half a second. .. py:class:: _ThreadsafeSelector() :module: cheroot.connections Bases: :py:class:`object` Thread-safe wrapper around a DefaultSelector. There are 2 thread contexts in which it may be accessed: * the selector thread * one of the worker threads in workers/threadpool.py The expected read/write patterns are: * :py:func:`~iter`: selector thread * :py:meth:`register`: selector thread and threadpool, via :py:meth:`~cheroot.workers.threadpool.ThreadPool.put` * :py:meth:`unregister`: selector thread only Notably, this means :py:class:`_ThreadsafeSelector` never needs to worry that connections will be removed behind its back. The lock is held when iterating or modifying the selector but is not required when :py:meth:`select()ing ` on it. .. py:method:: _ThreadsafeSelector.close() :module: cheroot.connections Close the selector. .. py:property:: _ThreadsafeSelector.connections :module: cheroot.connections Retrieve connections registered with the selector. .. py:method:: _ThreadsafeSelector.register(fileobj, events, data=None) :module: cheroot.connections Register ``fileobj`` with the selector. .. py:method:: _ThreadsafeSelector.select(timeout=None) :module: cheroot.connections Return socket fd and data pairs from selectors.select call. Returns entries ready to read in the form: (socket_file_descriptor, connection) .. py:method:: _ThreadsafeSelector.unregister(fileobj) :module: cheroot.connections Unregister ``fileobj`` from the selector. .. py:function:: prevent_socket_inheritance(sock) :module: cheroot.connections Mark the given socket fd as non-inheritable (POSIX). [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Args: [i18n] PATCH: 'docutils.nodes.term' to have rawsource: expiration_interval (float): Interval, in seconds, at which [i18n] PATCH: 'docutils.nodes.term' to have rawsource: There are 2 thread contexts in which it may be accessed: [i18n] PATCH: 'docutils.nodes.term' to have rawsource: The expected read/write patterns are: [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Returns entries ready to read in the form: [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.connections.rst:2: section "cheroot.connections module" gets labeled as "cheroot.connections module" reading sources... [ 31%] pkg/cheroot.errors [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.errors') [app] emitting event: 'source-read'('pkg/cheroot.errors', ['cheroot.errors module\n=====================\n\n.. automodule:: cheroot.errors\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.errors.rst:4: input: .. automodule:: cheroot.errors :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.errors [autodoc] import cheroot.errors => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Collection of exceptions raised and/or processed by Cheroot.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'FatalSSLAlert', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'MaxSizeExceeded', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'NoSSLError', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/errors.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Collection of exceptions raised and/or processed by Cheroot.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/errors.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f90d0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.errors', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.errors', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f90d0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/errors.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'acceptable_sock_shutdown_error_codes', {32, 107, 108, 104}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'acceptable_sock_shutdown_exceptions', (, ), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'plat_specific_errors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket_error_eintr', [4], False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket_errors_nonblocking', [11], False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket_errors_to_ignore', [32, 102, 103, 104, 9, 110, 111, 112, 113, 88, 'timed out', 'The read operation timed out'], False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.errors import FatalSSLAlert [autodoc] import cheroot.errors => [autodoc] getattr(_, 'FatalSSLAlert') [autodoc] => [autodoc] from cheroot.errors import MaxSizeExceeded [autodoc] import cheroot.errors => [autodoc] getattr(_, 'MaxSizeExceeded') [autodoc] => [autodoc] from cheroot.errors import NoSSLError [autodoc] import cheroot.errors => [autodoc] getattr(_, 'NoSSLError') [autodoc] => [autodoc] from cheroot.errors import acceptable_sock_shutdown_error_codes [autodoc] import cheroot.errors => [autodoc] getattr(_, 'acceptable_sock_shutdown_error_codes') [autodoc] => {32, 107, 108, 104} [autodoc] from cheroot.errors import plat_specific_errors [autodoc] import cheroot.errors => [autodoc] getattr(_, 'plat_specific_errors') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.errors.FatalSSLAlert', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.errors.FatalSSLAlert', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.errors.FatalSSLAlert', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Exception raised when the SSL implementation signals a fatal alert.', '']) [app] emitting event: 'autodoc-skip-member'('exception', '__doc__', 'Exception raised when the SSL implementation signals a fatal alert.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 18, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.errors', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.errors.MaxSizeExceeded', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.errors.MaxSizeExceeded', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.errors.MaxSizeExceeded', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Exception raised when a client sends more data then allowed under limit.', '', 'Depends on ``request.body.maxbytes`` config option if used within CherryPy.', '']) [app] emitting event: 'autodoc-skip-member'('exception', '__doc__', 'Exception raised when a client sends more data then allowed under limit.\n\nDepends on ``request.body.maxbytes`` config option if used within CherryPy.\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 7, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.errors', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.errors.NoSSLError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.errors.NoSSLError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.errors.NoSSLError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Exception raised when a client speaks HTTP to an HTTPS socket.', '']) [app] emitting event: 'autodoc-skip-member'('exception', '__doc__', 'Exception raised when a client speaks HTTP to an HTTPS socket.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 14, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.errors', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-process-signature'('data', 'cheroot.errors.acceptable_sock_shutdown_error_codes', {32, 107, 108, 104}, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('data', 'cheroot.errors.acceptable_sock_shutdown_error_codes', {32, 107, 108, 104}, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Errors that may happen during the connection close sequence.', '', '* ENOTCONN — client is no longer connected', '* EPIPE — write on a pipe while the other end has been closed', '* ESHUTDOWN — write on a socket which has been shutdown for writing', '* ECONNRESET — connection is reset by the peer, we received a TCP RST packet', '', 'Refs:', '* https://github.com/cherrypy/cheroot/issues/341#issuecomment-735884889', '* https://bugs.python.org/issue30319', '* https://bugs.python.org/issue30329', '* https://github.com/python/cpython/commit/83a2c28', '* https://github.com/python/cpython/blob/c39b52f/Lib/poplib.py#L297-L302', '* https://docs.microsoft.com/windows/win32/api/winsock/nf-winsock-shutdown', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.errors.plat_specific_errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*errnames)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.errors.plat_specific_errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return error numbers for all errors in ``errnames`` on this platform.', '', 'The :py:mod:`errno` module contains different global constants', 'depending on the specific platform (OS). This function will return', 'the list of numeric values for a given list of potential names.', '']) [autodoc] output: .. py:module:: cheroot.errors Collection of exceptions raised and/or processed by Cheroot. .. py:exception:: FatalSSLAlert :module: cheroot.errors Bases: :py:class:`Exception` Exception raised when the SSL implementation signals a fatal alert. .. py:exception:: MaxSizeExceeded :module: cheroot.errors Bases: :py:class:`Exception` Exception raised when a client sends more data then allowed under limit. Depends on ``request.body.maxbytes`` config option if used within CherryPy. .. py:exception:: NoSSLError :module: cheroot.errors Bases: :py:class:`Exception` Exception raised when a client speaks HTTP to an HTTPS socket. .. py:data:: acceptable_sock_shutdown_error_codes :module: cheroot.errors :value: {32, 104, 107, 108} Errors that may happen during the connection close sequence. * ENOTCONN — client is no longer connected * EPIPE — write on a pipe while the other end has been closed * ESHUTDOWN — write on a socket which has been shutdown for writing * ECONNRESET — connection is reset by the peer, we received a TCP RST packet Refs: * https://github.com/cherrypy/cheroot/issues/341#issuecomment-735884889 * https://bugs.python.org/issue30319 * https://bugs.python.org/issue30329 * https://github.com/python/cpython/commit/83a2c28 * https://github.com/python/cpython/blob/c39b52f/Lib/poplib.py#L297-L302 * https://docs.microsoft.com/windows/win32/api/winsock/nf-winsock-shutdown .. py:function:: plat_specific_errors(*errnames) :module: cheroot.errors Return error numbers for all errors in ``errnames`` on this platform. The :py:mod:`errno` module contains different global constants depending on the specific platform (OS). This function will return the list of numeric values for a given list of potential names. [app] emitting event: 'object-description-transform'('py', 'exception', >) [app] emitting event: 'object-description-transform'('py', 'exception', >) [app] emitting event: 'object-description-transform'('py', 'exception', >) [app] emitting event: 'object-description-transform'('py', 'data', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.errors.rst:2: section "cheroot.errors module" gets labeled as "cheroot.errors module" reading sources... [ 33%] pkg/cheroot.makefile [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.makefile') [app] emitting event: 'source-read'('pkg/cheroot.makefile', ['cheroot.makefile module\n=======================\n\n.. automodule:: cheroot.makefile\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.makefile.rst:4: input: .. automodule:: cheroot.makefile :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.makefile [autodoc] import cheroot.makefile => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Socket file object.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'BufferedWriter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'MakeFile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SOCK_WRITE_BLOCKSIZE', 16384, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'StreamReader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/makefile.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Socket file object.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/makefile.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f9370>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.makefile', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.makefile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f9370>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/makefile.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'io', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.makefile import BufferedWriter [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'BufferedWriter') [autodoc] => [autodoc] from cheroot.makefile import MakeFile [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'MakeFile') [autodoc] => [autodoc] from cheroot.makefile import StreamReader [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] from cheroot.makefile import StreamWriter [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamWriter') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.makefile.BufferedWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(raw, buffer_size=131072)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.makefile.BufferedWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.makefile.BufferedWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Faux file object attached to a socket object.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Faux file object attached to a socket object.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 12, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.makefile', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f4622b9e580>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_flush_unlocked', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.makefile import BufferedWriter._abc_impl [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'BufferedWriter') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f4622b9e580> [autodoc] from cheroot.makefile import BufferedWriter._flush_unlocked [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'BufferedWriter') [autodoc] => [autodoc] getattr(_, '_flush_unlocked') [autodoc] => [autodoc] from cheroot.makefile import BufferedWriter.write [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'BufferedWriter') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.makefile.BufferedWriter._abc_impl', <_abc._abc_data object at 0x7f4622b9e580>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.BufferedWriter._flush_unlocked', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.BufferedWriter._flush_unlocked', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.BufferedWriter.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(b)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.BufferedWriter.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Write bytes to buffer.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.makefile.MakeFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='r', bufsize=131072)", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.makefile.MakeFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['File object attached to a socket object.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.makefile.StreamReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='r', bufsize=131072)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.makefile.StreamReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.makefile.StreamReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Socket stream reader.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Socket stream reader.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 38, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.makefile', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bytes_read',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f4625393ac0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'has_data', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.makefile import StreamReader._abc_impl [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f4625393ac0> [autodoc] from cheroot.makefile import StreamReader.has_data [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] getattr(_, 'has_data') [autodoc] => [autodoc] from cheroot.makefile import StreamReader.read [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.makefile.StreamReader._abc_impl', <_abc._abc_data object at 0x7f4625393ac0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.StreamReader.has_data', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.StreamReader.has_data', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return true if there is buffered data to read.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.StreamReader.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.StreamReader.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Capture bytes read.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.makefile.StreamWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='w', bufsize=131072)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.makefile.StreamWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.makefile.StreamWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Socket stream writer.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Socket stream writer.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 57, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.makefile', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bytes_written',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f462082c300>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.makefile import StreamWriter._abc_impl [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamWriter') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f462082c300> [autodoc] from cheroot.makefile import StreamWriter.write [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamWriter') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.makefile.StreamWriter._abc_impl', <_abc._abc_data object at 0x7f462082c300>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.StreamWriter.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(val, *args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.StreamWriter.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Capture bytes written.', '']) [autodoc] output: .. py:module:: cheroot.makefile Socket file object. .. py:class:: BufferedWriter(raw, buffer_size=131072) :module: cheroot.makefile Bases: :py:class:`~_pyio.BufferedWriter` Faux file object attached to a socket object. .. py:attribute:: BufferedWriter._abc_impl :module: cheroot.makefile :value: <_abc._abc_data object> .. py:method:: BufferedWriter._flush_unlocked() :module: cheroot.makefile .. py:method:: BufferedWriter.write(b) :module: cheroot.makefile Write bytes to buffer. .. py:function:: MakeFile(sock, mode='r', bufsize=131072) :module: cheroot.makefile File object attached to a socket object. .. py:class:: StreamReader(sock, mode='r', bufsize=131072) :module: cheroot.makefile Bases: :py:class:`~_pyio.BufferedReader` Socket stream reader. .. py:attribute:: StreamReader._abc_impl :module: cheroot.makefile :value: <_abc._abc_data object> .. py:method:: StreamReader.has_data() :module: cheroot.makefile Return true if there is buffered data to read. .. py:method:: StreamReader.read(*args, **kwargs) :module: cheroot.makefile Capture bytes read. .. py:class:: StreamWriter(sock, mode='w', bufsize=131072) :module: cheroot.makefile Bases: :py:class:`~cheroot.makefile.BufferedWriter` Socket stream writer. .. py:attribute:: StreamWriter._abc_impl :module: cheroot.makefile :value: <_abc._abc_data object> .. py:method:: StreamWriter.write(val, *args, **kwargs) :module: cheroot.makefile Capture bytes written. [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.makefile.rst:2: section "cheroot.makefile module" gets labeled as "cheroot.makefile module" reading sources... [ 36%] pkg/cheroot.server [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.server') [app] emitting event: 'source-read'('pkg/cheroot.server', ['cheroot.server module\n=====================\n\n.. automodule:: cheroot.server\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.server.rst:4: input: .. automodule:: cheroot.server :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.server [autodoc] import cheroot.server => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A high-speed, production ready, thread pooled, generic HTTP server.', '', "For those of you wanting to understand internals of this module, here's the", "basic call flow. The server's listening thread runs a very tight loop,", 'sticking incoming connections onto a Queue::', '', ' server = HTTPServer(...)', ' server.start()', ' -> serve()', ' while ready:', ' _connections.run()', ' while not stop_requested:', ' child = socket.accept() # blocks until a request comes in', ' conn = HTTPConnection(child, ...)', ' server.process_conn(conn) # adds conn to threadpool', '', 'Worker threads are kept in a pool and poll the Queue, popping off and then', 'handling each connection in turn. Each connection can consist of an arbitrary', 'number of requests and their responses, so we run a nested loop::', '', ' while True:', ' conn = server.requests.get()', ' conn.communicate()', ' -> while True:', ' req = HTTPRequest(...)', ' req.parse_request()', ' -> # Read the Request-Line, e.g. "GET /page HTTP/1.1"', ' req.rfile.readline()', ' read_headers(req.rfile, req.inheaders)', ' req.respond()', ' -> response = app(...)', ' try:', ' for chunk in response:', ' if chunk:', ' req.write(chunk)', ' finally:', ' if hasattr(response, "close"):', ' response.close()', ' if req.close_connection:', ' return', '', 'For running a server you can invoke :func:`start() ` (it', 'will run the server forever) or use invoking :func:`prepare()', '` and :func:`serve() ` like this::', '', ' server = HTTPServer(...)', ' server.prepare()', ' try:', ' threading.Thread(target=server.serve).start()', '', ' # waiting/detecting some appropriate stop condition here', ' ...', '', ' finally:', ' server.stop()', '', 'And now for a trivial doctest to exercise the test suite', '', '.. testsetup::', '', ' from cheroot.server import HTTPServer', '', ">>> 'HTTPServer' in globals()", 'True', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ASTERISK', b'*', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'COLON', b':', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'CRLF', b'\r\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ChunkedRFile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'DropUnderscoreHeaderReader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'EMPTY', b'', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'FORWARD_SLASH', b'/', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPConnection', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPRequest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HeaderReader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_GAE', False, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PPC', False, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_UID_GID_RESOLVABLE', True, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'KnownLengthRFile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'LF', b'\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'MakeFile', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'QUOTED_SLASH', b'%2F', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'QUOTED_SLASH_REGEX', re.compile(b'(?i)%2F', re.IGNORECASE), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'QueueShutDown', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'QueueWithShutdown', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SEMICOLON', b';', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SPACE', b' ', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SizeCheckWrapper', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'TAB', b'\t', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_STOPPING_FOR_INTERRUPT', Exception(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__all__', ('ChunkedRFile', 'DropUnderscoreHeaderReader', 'Gateway', 'HTTPConnection', 'HTTPRequest', 'HTTPServer', 'HeaderReader', 'KnownLengthRFile', 'SizeCheckWrapper', 'get_ssl_adapter_class'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/server.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', '\nA high-speed, production ready, thread pooled, generic HTTP server.\n\nFor those of you wanting to understand internals of this module, here\'s the\nbasic call flow. The server\'s listening thread runs a very tight loop,\nsticking incoming connections onto a Queue::\n\n server = HTTPServer(...)\n server.start()\n -> serve()\n while ready:\n _connections.run()\n while not stop_requested:\n child = socket.accept() # blocks until a request comes in\n conn = HTTPConnection(child, ...)\n server.process_conn(conn) # adds conn to threadpool\n\nWorker threads are kept in a pool and poll the Queue, popping off and then\nhandling each connection in turn. Each connection can consist of an arbitrary\nnumber of requests and their responses, so we run a nested loop::\n\n while True:\n conn = server.requests.get()\n conn.communicate()\n -> while True:\n req = HTTPRequest(...)\n req.parse_request()\n -> # Read the Request-Line, e.g. "GET /page HTTP/1.1"\n req.rfile.readline()\n read_headers(req.rfile, req.inheaders)\n req.respond()\n -> response = app(...)\n try:\n for chunk in response:\n if chunk:\n req.write(chunk)\n finally:\n if hasattr(response, "close"):\n response.close()\n if req.close_connection:\n return\n\nFor running a server you can invoke :func:`start() ` (it\nwill run the server forever) or use invoking :func:`prepare()\n` and :func:`serve() ` like this::\n\n server = HTTPServer(...)\n server.prepare()\n try:\n threading.Thread(target=server.serve).start()\n\n # waiting/detecting some appropriate stop condition here\n ...\n\n finally:\n server.stop()\n\nAnd now for a trivial doctest to exercise the test suite\n\n.. testsetup::\n\n from cheroot.server import HTTPServer\n\n>>> \'HTTPServer\' in globals()\nTrue\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/server.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8230>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.server', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8230>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/server.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__version__', '11.1.0', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'comma_separated_headers', [b'Accept', b'Accept-Charset', b'Accept-Encoding', b'Accept-Language', b'Accept-Ranges', b'Allow', b'Cache-Control', b'Connection', b'Content-Encoding', b'Content-Language', b'Expect', b'If-Match', b'If-None-Match', b'Pragma', b'Proxy-Authenticate', b'TE', b'Trailer', b'Transfer-Encoding', b'Upgrade', b'Vary', b'Via', b'Warning', b'WWW-Authenticate'], True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'connections', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'email', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'get_ssl_adapter_class', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'grp', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'io', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'lru_cache', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'platform', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pwd', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'queue', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 're', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ssl_adapters', {'builtin': 'cheroot.ssl.builtin.BuiltinSSLAdapter', 'pyopenssl': 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter'}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'struct', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threadpool', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'traceback_', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import ChunkedRFile [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] from cheroot.server import DropUnderscoreHeaderReader [autodoc] import cheroot.server => [autodoc] getattr(_, 'DropUnderscoreHeaderReader') [autodoc] => [autodoc] from cheroot.server import Gateway [autodoc] import cheroot.server => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] from cheroot.server import HTTPConnection [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] from cheroot.server import HTTPRequest [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] from cheroot.server import HTTPServer [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] from cheroot.server import HeaderReader [autodoc] import cheroot.server => [autodoc] getattr(_, 'HeaderReader') [autodoc] => [autodoc] from cheroot.server import KnownLengthRFile [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] from cheroot.server import SizeCheckWrapper [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] from cheroot.server import get_ssl_adapter_class [autodoc] import cheroot.server => [autodoc] getattr(_, 'get_ssl_adapter_class') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.ChunkedRFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(rfile, maxlen, bufsize=8192)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.ChunkedRFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.ChunkedRFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wraps a file-like object, returning an empty string when exhausted.', '', 'This class is intended to provide a conforming wsgi.input value for', "request entities that have been encoded with the 'chunked' transfer", 'encoding.', '', ":param rfile: file encoded with the 'chunked' transfer encoding", ':param int maxlen: maximum length of the file being read', ':param int bufsize: size of the buffer used to read the file', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 497, '__doc__': "Wraps a file-like object, returning an empty string when exhausted.\n\nThis class is intended to provide a conforming wsgi.input value for\nrequest entities that have been encoded with the 'chunked' transfer\nencoding.\n\n:param rfile: file encoded with the 'chunked' transfer encoding\n:param int maxlen: maximum length of the file being read\n:param int bufsize: size of the buffer used to read the file\n", '__init__': , '_fetch': , 'read': , 'readline': , 'readlines': , 'read_trailer_lines': , 'close': , '__static_attributes__': ('buffer', 'bufsize', 'bytes_read', 'closed', 'maxlen', 'rfile'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', "Wraps a file-like object, returning an empty string when exhausted.\n\nThis class is intended to provide a conforming wsgi.input value for\nrequest entities that have been encoded with the 'chunked' transfer\nencoding.\n\n:param rfile: file encoded with the 'chunked' transfer encoding\n:param int maxlen: maximum length of the file being read\n:param int bufsize: size of the buffer used to read the file\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 497, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('buffer', 'bufsize', 'bytes_read', 'closed', 'maxlen', 'rfile'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_fetch', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read_trailer_lines', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'readlines', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import ChunkedRFile._fetch [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, '_fetch') [autodoc] => [autodoc] from cheroot.server import ChunkedRFile.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [autodoc] from cheroot.server import ChunkedRFile.read [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [autodoc] from cheroot.server import ChunkedRFile.read_trailer_lines [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'read_trailer_lines') [autodoc] => [autodoc] from cheroot.server import ChunkedRFile.readline [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [autodoc] from cheroot.server import ChunkedRFile.readlines [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'readlines') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile._fetch', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile._fetch', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Release resources allocated for ``rfile``.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read a chunk from ``rfile`` buffer and return it.', '', ':param size: amount of data to read', ':type size: int', '', ':returns: chunk from ``rfile``, limited by size if specified', ':rtype: bytes', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.read_trailer_lines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.read_trailer_lines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read HTTP headers and yield them.', '', ':yields: CRLF separated lines', ':ytype: bytes', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read a single line from ``rfile`` buffer and return it.', '', ':param size: minimum amount of data to read', ':type size: int', '', ':returns: one line from ``rfile``', ':rtype: bytes', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.readlines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sizehint=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.readlines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read all lines from ``rfile`` buffer and return them.', '', ':param sizehint: hint of minimum amount of data to read', ':type sizehint: int', '', ':returns: lines of bytes read from ``rfile``', ':rtype: list[bytes]', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.DropUnderscoreHeaderReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.DropUnderscoreHeaderReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.DropUnderscoreHeaderReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Custom HeaderReader to exclude any headers with underscores in them.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Custom HeaderReader to exclude any headers with underscores in them.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 302, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_allow_header', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import DropUnderscoreHeaderReader._allow_header [autodoc] import cheroot.server => [autodoc] getattr(_, 'DropUnderscoreHeaderReader') [autodoc] => [autodoc] getattr(_, '_allow_header') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.DropUnderscoreHeaderReader._allow_header', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key_name)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.DropUnderscoreHeaderReader._allow_header', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.Gateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.Gateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.Gateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Base class to interface HTTPServer with other systems, such as WSGI.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 2324, '__doc__': 'Base class to interface HTTPServer with other systems, such as WSGI.', '__init__': , 'respond': , '__static_attributes__': ('req',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Base class to interface HTTPServer with other systems, such as WSGI.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 2324, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('req',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import Gateway.respond [autodoc] import cheroot.server => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.Gateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.Gateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Process the current request. Must be overridden in a subclass.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HTTPConnection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server, sock, makefile=)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.HTTPConnection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPConnection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['An HTTP connection (active socket).', '']) [app] emitting event: 'autodoc-skip-member'('class', 'RequestHandlerClass', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 1294, '__doc__': 'An HTTP connection (active socket).', 'remote_addr': None, 'remote_port': None, 'ssl_env': None, 'rbufsize': 131072, 'wbufsize': 131072, 'RequestHandlerClass': , 'peercreds_enabled': False, 'peercreds_resolve_enabled': False, 'last_used': None, '__init__': , 'communicate': , 'linger': False, '_handle_no_ssl': , '_conditional_error': , 'close': , 'get_peer_creds': , 'peer_pid': , 'peer_uid': , 'peer_gid': , 'resolve_peer_creds': , 'peer_user': , 'peer_group': , '_close_kernel_socket': , '__static_attributes__': ('get_peer_creds', 'linger', 'peercreds_enabled', 'peercreds_resolve_enabled', 'requests_seen', 'resolve_peer_creds', 'rfile', 'server', 'socket', 'wfile'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'An HTTP connection (active socket).', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1294, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('get_peer_creds', 'linger', 'peercreds_enabled', 'peercreds_resolve_enabled', 'requests_seen', 'resolve_peer_creds', 'rfile', 'server', 'socket', 'wfile'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_close_kernel_socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_conditional_error', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_handle_no_ssl', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'communicate', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_peer_creds', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'last_used', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'linger', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peer_gid', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peer_group', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peer_pid', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peer_uid', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peer_user', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_enabled', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_resolve_enabled', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'rbufsize', 131072, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'remote_addr', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'remote_port', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'resolve_peer_creds', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_env', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'wbufsize', 131072, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import HTTPConnection.RequestHandlerClass [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'RequestHandlerClass') [autodoc] => [autodoc] from cheroot.server import HTTPConnection._close_kernel_socket [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, '_close_kernel_socket') [autodoc] => [autodoc] from cheroot.server import HTTPConnection._conditional_error [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, '_conditional_error') [autodoc] => [autodoc] from cheroot.server import HTTPConnection._handle_no_ssl [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, '_handle_no_ssl') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.communicate [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'communicate') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.get_peer_creds [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'get_peer_creds') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.last_used [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'last_used') [autodoc] => None [autodoc] from cheroot.server import HTTPConnection.linger [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'linger') [autodoc] => False [autodoc] from cheroot.server import HTTPConnection.peer_gid [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_gid') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.peer_group [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_group') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.peer_pid [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_pid') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.peer_uid [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_uid') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.peer_user [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_user') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.peercreds_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peercreds_enabled') [autodoc] => False [autodoc] from cheroot.server import HTTPConnection.peercreds_resolve_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peercreds_resolve_enabled') [autodoc] => False [autodoc] from cheroot.server import HTTPConnection.rbufsize [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'rbufsize') [autodoc] => 131072 [autodoc] from cheroot.server import HTTPConnection.remote_addr [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'remote_addr') [autodoc] => None [autodoc] from cheroot.server import HTTPConnection.remote_port [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'remote_port') [autodoc] => None [autodoc] from cheroot.server import HTTPConnection.resolve_peer_creds [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'resolve_peer_creds') [autodoc] => [autodoc] from cheroot.server import HTTPConnection.ssl_env [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'ssl_env') [autodoc] => None [autodoc] from cheroot.server import HTTPConnection.wbufsize [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'wbufsize') [autodoc] => 131072 [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection._close_kernel_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection._close_kernel_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Terminate the connection at the transport level.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection._conditional_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, response)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection._conditional_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Respond with an error.', '', "Don't bother writing if a response", 'has already started being written.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection._handle_no_ssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection._handle_no_ssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Close the socket underlying this connection.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.communicate', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.communicate', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read each request and respond appropriately.', '', 'Returns true if the connection should be kept open.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.get_peer_creds', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.get_peer_creds', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the PID/UID/GID tuple of the peer socket for UNIX sockets.', '', 'This function uses SO_PEERCRED to query the UNIX PID, UID, GID', 'of the peer, which is only available if the bind address is', 'a UNIX domain socket.', '', 'Raises:', ' NotImplementedError: in case of unsupported socket type', ' RuntimeError: in case of SO_PEERCRED lookup unsupported or disabled', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.last_used', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.linger', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_gid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_gid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the group id of the connected peer process.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_group', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_group', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the group of the connected peer process.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_pid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_pid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the id of the connected peer process.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_uid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_uid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the user id of the connected peer process.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_user', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_user', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the username of the connected peer process.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.peercreds_enabled', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.peercreds_resolve_enabled', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.rbufsize', 131072, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.remote_addr', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.remote_port', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.resolve_peer_creds', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.resolve_peer_creds', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Look up the username and group tuple of the ``PEERCREDS``.', '', ':returns: the username and group tuple of the ``PEERCREDS``', '', ':raises NotImplementedError: if the OS is unsupported', ':raises RuntimeError: if UID/GID lookup is unsupported or disabled', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.ssl_env', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.wbufsize', 131072, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HTTPRequest', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server, conn, proxy_mode=False, strict_mode=True)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.HTTPRequest', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPRequest', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['An HTTP Request (and response).', '', 'A single HTTP connection may consist of multiple request/response pairs.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 690, '__doc__': 'An HTTP Request (and response).\n\nA single HTTP connection may consist of multiple request/response pairs.\n', 'server': None, 'conn': None, 'inheaders': {}, 'outheaders': [], 'ready': False, 'close_connection': False, 'chunked_write': False, 'header_reader': , '__init__': , 'parse_request': , 'read_request_line': , 'read_request_headers': , 'respond': , 'simple_response': , 'ensure_headers_sent': , 'write': , 'send_headers': , '__static_attributes__': ('authority', 'chunked_read', 'chunked_write', 'close_connection', 'conn', 'inheaders', 'method', 'outheaders', 'path', 'proxy_mode', 'qs', 'ready', 'request_protocol', 'response_protocol', 'rfile', 'scheme', 'sent_headers', 'server', 'started_request', 'status', 'strict_mode', 'uri'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'An HTTP Request (and response).\n\nA single HTTP connection may consist of multiple request/response pairs.\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 690, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('authority', 'chunked_read', 'chunked_write', 'close_connection', 'conn', 'inheaders', 'method', 'outheaders', 'path', 'proxy_mode', 'qs', 'ready', 'request_protocol', 'response_protocol', 'rfile', 'scheme', 'sent_headers', 'server', 'started_request', 'status', 'strict_mode', 'uri'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'chunked_write', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close_connection', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'conn', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ensure_headers_sent', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'header_reader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'inheaders', {}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'outheaders', [], False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'parse_request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read_request_headers', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read_request_line', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ready', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'send_headers', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'server', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'simple_response', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import HTTPRequest.chunked_write [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'chunked_write') [autodoc] => False [autodoc] from cheroot.server import HTTPRequest.close_connection [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'close_connection') [autodoc] => False [autodoc] from cheroot.server import HTTPRequest.conn [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'conn') [autodoc] => None [autodoc] from cheroot.server import HTTPRequest.ensure_headers_sent [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'ensure_headers_sent') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.header_reader [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'header_reader') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.inheaders [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'inheaders') [autodoc] => {} [autodoc] from cheroot.server import HTTPRequest.outheaders [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'outheaders') [autodoc] => [] [autodoc] from cheroot.server import HTTPRequest.parse_request [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'parse_request') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.read_request_headers [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'read_request_headers') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.read_request_line [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'read_request_line') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.ready [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'ready') [autodoc] => False [autodoc] from cheroot.server import HTTPRequest.respond [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.send_headers [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'send_headers') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.server [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'server') [autodoc] => None [autodoc] from cheroot.server import HTTPRequest.simple_response [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'simple_response') [autodoc] => [autodoc] from cheroot.server import HTTPRequest.write [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.chunked_write', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.chunked_write', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['If True, output will be encoded with the "chunked" transfer-coding.', '', 'This value is set automatically inside send_headers.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.close_connection', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.close_connection', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Signals the calling Connection that the request should close. This does', 'not imply an error! The client and/or server may each request that the', 'connection be closed.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.conn', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.conn', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The HTTPConnection object on which this request connected.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.ensure_headers_sent', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.ensure_headers_sent', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Ensure headers are sent to the client if not already sent.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.header_reader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.header_reader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A HeaderReader instance or compatible reader.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.inheaders', {}, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.inheaders', {}, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A dict of request headers.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.outheaders', [], {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.outheaders', [], {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A list of header tuples to write in the response.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.parse_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.parse_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Parse the next HTTP request start-line and message-headers.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.read_request_headers', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.read_request_headers', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read ``self.rfile`` into ``self.inheaders``.', '', 'Ref: :py:attr:`self.inheaders `.', '', ':returns: success status', ':rtype: bool', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.read_request_line', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.read_request_line', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read and parse first line of the HTTP request.', '', 'Returns:', " bool: True if the request line is valid or False if it's malformed.", '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.ready', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.ready', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['When True, the request has been parsed and is ready to begin generating', 'the response. When False, signals the calling Connection that the response', 'should not be generated and the connection should close.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Call the gateway and write its iterable output.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.send_headers', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.send_headers', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Assert, process, and send the HTTP response message-headers.', '', 'You must set ``self.status``, and :py:attr:`self.outheaders', '` before calling this.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.server', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.server', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The HTTPServer object which is receiving this request.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.simple_response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(status, msg='')", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.simple_response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Write a simple response back to the client.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(chunk)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Write unbuffered data to the client.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HTTPServer', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr, gateway, minthreads=10, maxthreads=-1, server_name=None, peercreds_enabled=False, peercreds_resolve_enabled=False, reuse_port=False)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.HTTPServer', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPServer', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['An HTTP server.', '']) [app] emitting event: 'autodoc-skip-member'('class', 'ConnectionClass', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 1556, '__doc__': 'An HTTP server.', '_bind_addr': '127.0.0.1', '_interrupt': None, 'gateway': None, 'minthreads': None, 'maxthreads': None, 'server_name': None, 'protocol': 'HTTP/1.1', 'request_queue_size': 5, 'shutdown_timeout': 5, 'timeout': 10, 'expiration_interval': 0.5, 'version': 'Cheroot/11.1.0', 'software': None, 'ready': False, 'max_request_header_size': 0, 'max_request_body_size': 0, 'nodelay': True, 'ConnectionClass': , 'ssl_adapter': None, 'peercreds_enabled': False, 'peercreds_resolve_enabled': False, 'reuse_port': False, 'keep_alive_conn_limit': 10, '__init__': , 'clear_stats': , 'runtime': , '__str__': , 'bind_addr': , 'safe_start': , 'prepare': , '_serve_unservicable': , 'serve': , 'start': , '_run_in_thread': , 'can_add_keepalive_connection': , 'put_conn': , 'error_log': , 'bind': , 'bind_unix_socket': , '_make_socket_reusable': )>, 'prepare_socket': )>, 'bind_socket': )>, 'resolve_real_bind_addr': )>, 'process_conn': , 'interrupt': , '_stopping_for_interrupt': , 'stop': , '__static_attributes__': ('_bind_addr', '_connections', '_interrupt', '_run_time', '_start_time', '_unservicable_conns', 'bind_addr', 'gateway', 'interrupt', 'peercreds_enabled', 'peercreds_resolve_enabled', 'ready', 'requests', 'reuse_port', 'server_name', 'socket', 'software', 'stats'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'An HTTP server.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1556, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_bind_addr', '_connections', '_interrupt', '_run_time', '_start_time', '_unservicable_conns', 'bind_addr', 'gateway', 'interrupt', 'peercreds_enabled', 'peercreds_resolve_enabled', 'ready', 'requests', 'reuse_port', 'server_name', 'socket', 'software', 'stats'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__str__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_bind_addr', '127.0.0.1', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_interrupt', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_make_socket_reusable', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_run_in_thread', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_serve_unservicable', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_stopping_for_interrupt', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind_addr', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind_socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind_unix_socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'can_add_keepalive_connection', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'clear_stats', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'error_log', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'expiration_interval', 0.5, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'gateway', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'interrupt', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'keep_alive_conn_limit', 10, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'max_request_body_size', 0, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'max_request_header_size', 0, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'maxthreads', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'minthreads', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'nodelay', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_enabled', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_resolve_enabled', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'prepare', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'prepare_socket', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'process_conn', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'protocol', 'HTTP/1.1', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'put_conn', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ready', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'request_queue_size', 5, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'resolve_real_bind_addr', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'reuse_port', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'runtime', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'safe_start', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'serve', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'server_name', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'shutdown_timeout', 5, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'software', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_adapter', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'start', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'stop', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'timeout', 10, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'version', 'Cheroot/11.1.0', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import HTTPServer.ConnectionClass [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'ConnectionClass') [autodoc] => [autodoc] from cheroot.server import HTTPServer._bind_addr [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_bind_addr') [autodoc] => '127.0.0.1' [autodoc] from cheroot.server import HTTPServer._interrupt [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_interrupt') [autodoc] => None [autodoc] from cheroot.server import HTTPServer._make_socket_reusable [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_make_socket_reusable') [autodoc] => [autodoc] from cheroot.server import HTTPServer._run_in_thread [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_run_in_thread') [autodoc] => [autodoc] from cheroot.server import HTTPServer._serve_unservicable [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_serve_unservicable') [autodoc] => [autodoc] from cheroot.server import HTTPServer._stopping_for_interrupt [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_stopping_for_interrupt') [autodoc] => [autodoc] from cheroot.server import HTTPServer.bind [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [autodoc] from cheroot.server import HTTPServer.bind_addr [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind_addr') [autodoc] => [autodoc] from cheroot.server import HTTPServer.bind_socket [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind_socket') [autodoc] => [autodoc] from cheroot.server import HTTPServer.bind_unix_socket [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind_unix_socket') [autodoc] => [autodoc] from cheroot.server import HTTPServer.can_add_keepalive_connection [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'can_add_keepalive_connection') [autodoc] => [autodoc] from cheroot.server import HTTPServer.clear_stats [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'clear_stats') [autodoc] => [autodoc] from cheroot.server import HTTPServer.error_log [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'error_log') [autodoc] => [autodoc] from cheroot.server import HTTPServer.expiration_interval [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'expiration_interval') [autodoc] => 0.5 [autodoc] from cheroot.server import HTTPServer.gateway [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'gateway') [autodoc] => None [autodoc] from cheroot.server import HTTPServer.interrupt [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'interrupt') [autodoc] => [autodoc] from cheroot.server import HTTPServer.keep_alive_conn_limit [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'keep_alive_conn_limit') [autodoc] => 10 [autodoc] from cheroot.server import HTTPServer.max_request_body_size [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'max_request_body_size') [autodoc] => 0 [autodoc] from cheroot.server import HTTPServer.max_request_header_size [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'max_request_header_size') [autodoc] => 0 [autodoc] from cheroot.server import HTTPServer.maxthreads [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'maxthreads') [autodoc] => None [autodoc] from cheroot.server import HTTPServer.minthreads [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'minthreads') [autodoc] => None [autodoc] from cheroot.server import HTTPServer.nodelay [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'nodelay') [autodoc] => True [autodoc] from cheroot.server import HTTPServer.peercreds_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'peercreds_enabled') [autodoc] => False [autodoc] from cheroot.server import HTTPServer.peercreds_resolve_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'peercreds_resolve_enabled') [autodoc] => False [autodoc] from cheroot.server import HTTPServer.prepare [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'prepare') [autodoc] => [autodoc] from cheroot.server import HTTPServer.prepare_socket [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'prepare_socket') [autodoc] => > [autodoc] from cheroot.server import HTTPServer.process_conn [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'process_conn') [autodoc] => [autodoc] from cheroot.server import HTTPServer.protocol [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'protocol') [autodoc] => 'HTTP/1.1' [autodoc] from cheroot.server import HTTPServer.put_conn [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'put_conn') [autodoc] => [autodoc] from cheroot.server import HTTPServer.ready [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'ready') [autodoc] => False [autodoc] from cheroot.server import HTTPServer.request_queue_size [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'request_queue_size') [autodoc] => 5 [autodoc] from cheroot.server import HTTPServer.resolve_real_bind_addr [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'resolve_real_bind_addr') [autodoc] => [autodoc] from cheroot.server import HTTPServer.reuse_port [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'reuse_port') [autodoc] => False [autodoc] from cheroot.server import HTTPServer.runtime [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'runtime') [autodoc] => [autodoc] from cheroot.server import HTTPServer.safe_start [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'safe_start') [autodoc] => [autodoc] from cheroot.server import HTTPServer.serve [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'serve') [autodoc] => [autodoc] from cheroot.server import HTTPServer.server_name [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'server_name') [autodoc] => None [autodoc] from cheroot.server import HTTPServer.shutdown_timeout [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'shutdown_timeout') [autodoc] => 5 [autodoc] from cheroot.server import HTTPServer.software [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'software') [autodoc] => None [autodoc] from cheroot.server import HTTPServer.ssl_adapter [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'ssl_adapter') [autodoc] => None [autodoc] from cheroot.server import HTTPServer.start [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'start') [autodoc] => [autodoc] from cheroot.server import HTTPServer.stop [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'stop') [autodoc] => [autodoc] from cheroot.server import HTTPServer.timeout [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'timeout') [autodoc] => 10 [autodoc] from cheroot.server import HTTPServer.version [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'version') [autodoc] => 'Cheroot/11.1.0' [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPServer.ConnectionClass', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The class to use for handling HTTP connections.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer._bind_addr', '127.0.0.1', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer._interrupt', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer._make_socket_reusable', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(socket_, bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer._make_socket_reusable', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer._run_in_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer._run_in_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Context manager for running this server in a thread.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer._serve_unservicable', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer._serve_unservicable', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["Serve connections we can't handle a 503.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer._stopping_for_interrupt', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer._stopping_for_interrupt', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return whether the server is responding to an interrupt.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(family, type, proto=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create (or recreate) the actual socket object.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer.bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer.bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the interface on which to listen for connections.', '', 'For TCP sockets, a (host, port) tuple. Host values may be any', ':term:`IPv4` or :term:`IPv6` address, or any valid hostname.', "The string 'localhost' is a synonym for '127.0.0.1' (or '::1',", 'if your hosts file prefers :term:`IPv6`).', "The string '0.0.0.0' is a special :term:`IPv4` entry meaning", '"any active interface" (INADDR_ANY), and \'::\' is the similar', 'IN6ADDR_ANY for :term:`IPv6`.', 'The empty string or :py:data:`None` are not allowed.', '', 'For UNIX sockets, supply the file name as a string.', '', "Systemd socket activation is automatic and doesn't require tempering", 'with this variable.', '', '.. glossary::', '', ' :abbr:`IPv4 (Internet Protocol version 4)`', ' Internet Protocol version 4', '', ' :abbr:`IPv6 (Internet Protocol version 6)`', ' Internet Protocol version 6', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.bind_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(socket_, bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.bind_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Bind the socket to given interface.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.bind_unix_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.bind_unix_socket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create (or recreate) a UNIX socket object.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer.can_add_keepalive_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer.can_add_keepalive_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Flag whether it is allowed to add a new keep-alive connection.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.clear_stats', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.clear_stats', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Reset server stat counters..', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.error_log', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(msg='', level=20, traceback=False)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.error_log', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Write error message to log.', '', ':param msg: error message', ':type msg: str', '', ':param level: logging level', ':type level: int', '', ':param traceback: add traceback to output or not', ':type traceback: bool', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.expiration_interval', 0.5, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.expiration_interval', 0.5, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The interval, in seconds, at which the server checks for', 'expired connections (default 0.5).', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.gateway', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.gateway', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A Gateway instance.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer.interrupt', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer.interrupt', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Flag interrupt of the server.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.keep_alive_conn_limit', 10, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.keep_alive_conn_limit', 10, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Maximum number of waiting keep-alive connections that will be kept open.', '', 'Default is 10. Set to None to have unlimited connections.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.max_request_body_size', 0, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.max_request_body_size', 0, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The maximum size, in bytes, for request bodies, or 0 for no limit.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.max_request_header_size', 0, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.max_request_header_size', 0, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The maximum size, in bytes, for request headers, or 0 for no limit.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.maxthreads', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.maxthreads', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The maximum number of worker threads to create.', '', '(default -1 = no limit)', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.minthreads', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.minthreads', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The minimum number of worker threads to create (default 10).', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.nodelay', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.nodelay', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['If True (the default since 3.1), sets the TCP_NODELAY socket option.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.peercreds_enabled', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.peercreds_enabled', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Whether :py:data:`True`, peer credentials will be looked up via UNIX', 'domain socket.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.peercreds_resolve_enabled', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.peercreds_resolve_enabled', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['If :py:data:`True`, username/group will be looked up in the OS from', '``PEERCREDS``-provided IDs.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.prepare', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.prepare', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Prepare server to serving requests.', '', "It binds a socket's port, setups the socket to ``listen()`` and does", 'other preparing things.', '']) [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.prepare_socket', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr, family, type, proto, nodelay, ssl_adapter, reuse_port=False)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.prepare_socket', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create and prepare the socket object.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.process_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.process_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Process an incoming HTTPConnection.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.protocol', 'HTTP/1.1', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.protocol', 'HTTP/1.1', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The version string to write in the Status-Line of all HTTP responses.', '', 'For example, "HTTP/1.1" is the default. This also limits the supported', 'features used in the response.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.put_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.put_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Put an idle connection back into the ConnectionManager.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.ready', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.ready', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Internal flag which indicating the socket is accepting connections.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.request_queue_size', 5, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.request_queue_size', 5, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["The 'backlog' argument to ``socket.listen()``.", '', 'Maximum queued connections (default 5).', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.resolve_real_bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(socket_)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.resolve_real_bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Retrieve actual bind address from bound socket.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.reuse_port', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.reuse_port', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['If True, set SO_REUSEPORT on the socket.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.runtime', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.runtime', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return server uptime.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.safe_start', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.safe_start', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Run the server forever, and stop it cleanly on exit.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.serve', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.serve', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Serve requests, after invoking :func:`prepare()`.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.server_name', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.server_name', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The name of the server; defaults to ``self.version``.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.shutdown_timeout', 5, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.shutdown_timeout', 5, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The total time to wait for worker threads to cleanly exit.', '', 'Specified in seconds.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.software', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.software', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The value to set for the SERVER_SOFTWARE entry in the WSGI environ.', '', "If None, this defaults to ``'%s Server' % self.version``.", '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.ssl_adapter', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.ssl_adapter', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['An instance of ``ssl.Adapter`` (or a subclass).', '', 'Ref: :py:class:`ssl.Adapter `.', '', 'You must have the corresponding TLS driver library installed.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.start', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.start', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Run the server forever.', '', 'It is shortcut for invoking :func:`prepare()` then :func:`serve()`.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.stop', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.stop', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Gracefully shutdown a server that is serving forever.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.timeout', 10, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.timeout', 10, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The timeout in seconds for accepted connections (default 10).', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.version', 'Cheroot/11.1.0', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.version', 'Cheroot/11.1.0', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A version string for the HTTPServer.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HeaderReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.HeaderReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HeaderReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Object for reading headers from an HTTP request.', '', 'Interface and default implementation.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 231, '__doc__': 'Object for reading headers from an HTTP request.\n\nInterface and default implementation.\n', '__call__': , '_allow_header': , '_transform_key': , '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Object for reading headers from an HTTP request.\n\nInterface and default implementation.\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 231, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_allow_header', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_transform_key', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import HeaderReader._allow_header [autodoc] import cheroot.server => [autodoc] getattr(_, 'HeaderReader') [autodoc] => [autodoc] getattr(_, '_allow_header') [autodoc] => [autodoc] from cheroot.server import HeaderReader._transform_key [autodoc] import cheroot.server => [autodoc] getattr(_, 'HeaderReader') [autodoc] => [autodoc] getattr(_, '_transform_key') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HeaderReader._allow_header', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key_name)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HeaderReader._allow_header', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HeaderReader._transform_key', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key_name)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HeaderReader._transform_key', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.KnownLengthRFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(rfile, content_length)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.KnownLengthRFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.KnownLengthRFile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wraps a file-like object, returning an empty string when exhausted.', '', ':param rfile: ``file`` of a known size', ':param int content_length: length of the file being read', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 407, '__doc__': 'Wraps a file-like object, returning an empty string when exhausted.\n\n:param rfile: ``file`` of a known size\n:param int content_length: length of the file being read\n', '__init__': , 'read': , 'readline': , 'readlines': , 'close': , '__iter__': , '__next__': , 'next': , '__static_attributes__': ('remaining', 'rfile'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Wraps a file-like object, returning an empty string when exhausted.\n\n:param rfile: ``file`` of a known size\n:param int content_length: length of the file being read\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 407, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__iter__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__next__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('remaining', 'rfile'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'next', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'readlines', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import KnownLengthRFile.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [autodoc] from cheroot.server import KnownLengthRFile.next [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'next') [autodoc] => [autodoc] from cheroot.server import KnownLengthRFile.read [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [autodoc] from cheroot.server import KnownLengthRFile.readline [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [autodoc] from cheroot.server import KnownLengthRFile.readlines [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'readlines') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Release resources allocated for ``rfile``.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.next', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.next', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Generate next file chunk.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read a chunk from ``rfile`` buffer and return it.', '', ':param size: amount of data to read', ':type size: int', '', ':rtype: bytes', ':returns: chunk from ``rfile``, limited by size if specified', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read a single line from ``rfile`` buffer and return it.', '', ':param size: minimum amount of data to read', ':type size: int', '', ':returns: one line from ``rfile``', ':rtype: bytes', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.readlines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sizehint=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.readlines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read all lines from ``rfile`` buffer and return them.', '', ':param sizehint: hint of minimum amount of data to read', ':type sizehint: int', '', ':returns: lines of bytes read from ``rfile``', ':rtype: list[bytes]', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.SizeCheckWrapper', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(rfile, maxlen)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.SizeCheckWrapper', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.SizeCheckWrapper', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wraps a file-like object, raising MaxSizeExceeded if too large.', '', ':param rfile: ``file`` of a limited size', ':param int maxlen: maximum length of the file being read', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.server', '__firstlineno__': 310, '__doc__': 'Wraps a file-like object, raising MaxSizeExceeded if too large.\n\n:param rfile: ``file`` of a limited size\n:param int maxlen: maximum length of the file being read\n', '__init__': , '_check_length': , 'read': , 'readline': , 'readlines': , 'close': , '__iter__': , '__next__': , 'next': , '__static_attributes__': ('bytes_read', 'maxlen', 'rfile'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Wraps a file-like object, raising MaxSizeExceeded if too large.\n\n:param rfile: ``file`` of a limited size\n:param int maxlen: maximum length of the file being read\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 310, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__iter__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__next__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bytes_read', 'maxlen', 'rfile'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_check_length', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'next', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'readlines', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.server import SizeCheckWrapper._check_length [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, '_check_length') [autodoc] => [autodoc] from cheroot.server import SizeCheckWrapper.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [autodoc] from cheroot.server import SizeCheckWrapper.next [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'next') [autodoc] => [autodoc] from cheroot.server import SizeCheckWrapper.read [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [autodoc] from cheroot.server import SizeCheckWrapper.readline [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [autodoc] from cheroot.server import SizeCheckWrapper.readlines [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'readlines') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper._check_length', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper._check_length', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Release resources allocated for ``rfile``.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.next', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.next', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Generate next file chunk.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read a chunk from ``rfile`` buffer and return it.', '', ':param size: amount of data to read', ':type size: int', '', ':returns: chunk from ``rfile``, limited by size if specified', ':rtype: bytes', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read a single line from ``rfile`` buffer and return it.', '', ':param size: minimum amount of data to read', ':type size: int', '', ':returns: one line from ``rfile``', ':rtype: bytes', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.readlines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sizehint=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.readlines', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Read all lines from ``rfile`` buffer and return them.', '', ':param sizehint: hint of minimum amount of data to read', ':type sizehint: int', '', ':returns: lines of bytes read from ``rfile``', ':rtype: list[bytes]', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.server.get_ssl_adapter_class', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(name='builtin')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.server.get_ssl_adapter_class', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return an SSL adapter class for the given name.', '']) [autodoc] output: .. py:module:: cheroot.server A high-speed, production ready, thread pooled, generic HTTP server. For those of you wanting to understand internals of this module, here's the basic call flow. The server's listening thread runs a very tight loop, sticking incoming connections onto a Queue:: server = HTTPServer(...) server.start() -> serve() while ready: _connections.run() while not stop_requested: child = socket.accept() # blocks until a request comes in conn = HTTPConnection(child, ...) server.process_conn(conn) # adds conn to threadpool Worker threads are kept in a pool and poll the Queue, popping off and then handling each connection in turn. Each connection can consist of an arbitrary number of requests and their responses, so we run a nested loop:: while True: conn = server.requests.get() conn.communicate() -> while True: req = HTTPRequest(...) req.parse_request() -> # Read the Request-Line, e.g. "GET /page HTTP/1.1" req.rfile.readline() read_headers(req.rfile, req.inheaders) req.respond() -> response = app(...) try: for chunk in response: if chunk: req.write(chunk) finally: if hasattr(response, "close"): response.close() if req.close_connection: return For running a server you can invoke :func:`start() ` (it will run the server forever) or use invoking :func:`prepare() ` and :func:`serve() ` like this:: server = HTTPServer(...) server.prepare() try: threading.Thread(target=server.serve).start() # waiting/detecting some appropriate stop condition here ... finally: server.stop() And now for a trivial doctest to exercise the test suite .. testsetup:: from cheroot.server import HTTPServer >>> 'HTTPServer' in globals() True .. py:class:: ChunkedRFile(rfile, maxlen, bufsize=8192) :module: cheroot.server Bases: :py:class:`object` Wraps a file-like object, returning an empty string when exhausted. This class is intended to provide a conforming wsgi.input value for request entities that have been encoded with the 'chunked' transfer encoding. :param rfile: file encoded with the 'chunked' transfer encoding :param int maxlen: maximum length of the file being read :param int bufsize: size of the buffer used to read the file .. py:method:: ChunkedRFile._fetch() :module: cheroot.server .. py:method:: ChunkedRFile.close() :module: cheroot.server Release resources allocated for ``rfile``. .. py:method:: ChunkedRFile.read(size=None) :module: cheroot.server Read a chunk from ``rfile`` buffer and return it. :param size: amount of data to read :type size: int :returns: chunk from ``rfile``, limited by size if specified :rtype: bytes .. py:method:: ChunkedRFile.read_trailer_lines() :module: cheroot.server Read HTTP headers and yield them. :yields: CRLF separated lines :ytype: bytes .. py:method:: ChunkedRFile.readline(size=None) :module: cheroot.server Read a single line from ``rfile`` buffer and return it. :param size: minimum amount of data to read :type size: int :returns: one line from ``rfile`` :rtype: bytes .. py:method:: ChunkedRFile.readlines(sizehint=0) :module: cheroot.server Read all lines from ``rfile`` buffer and return them. :param sizehint: hint of minimum amount of data to read :type sizehint: int :returns: lines of bytes read from ``rfile`` :rtype: list[bytes] .. py:class:: DropUnderscoreHeaderReader() :module: cheroot.server Bases: :py:class:`~cheroot.server.HeaderReader` Custom HeaderReader to exclude any headers with underscores in them. .. py:method:: DropUnderscoreHeaderReader._allow_header(key_name) :module: cheroot.server .. py:class:: Gateway(req) :module: cheroot.server Bases: :py:class:`object` Base class to interface HTTPServer with other systems, such as WSGI. .. py:method:: Gateway.respond() :module: cheroot.server Process the current request. Must be overridden in a subclass. .. py:class:: HTTPConnection(server, sock, makefile=) :module: cheroot.server Bases: :py:class:`object` An HTTP connection (active socket). .. py:attribute:: HTTPConnection.RequestHandlerClass :module: cheroot.server alias of :py:class:`~cheroot.server.HTTPRequest` .. py:method:: HTTPConnection._close_kernel_socket() :module: cheroot.server Terminate the connection at the transport level. .. py:method:: HTTPConnection._conditional_error(req, response) :module: cheroot.server Respond with an error. Don't bother writing if a response has already started being written. .. py:method:: HTTPConnection._handle_no_ssl(req) :module: cheroot.server .. py:method:: HTTPConnection.close() :module: cheroot.server Close the socket underlying this connection. .. py:method:: HTTPConnection.communicate() :module: cheroot.server Read each request and respond appropriately. Returns true if the connection should be kept open. .. py:method:: HTTPConnection.get_peer_creds() :module: cheroot.server Return the PID/UID/GID tuple of the peer socket for UNIX sockets. This function uses SO_PEERCRED to query the UNIX PID, UID, GID of the peer, which is only available if the bind address is a UNIX domain socket. Raises: NotImplementedError: in case of unsupported socket type RuntimeError: in case of SO_PEERCRED lookup unsupported or disabled .. py:attribute:: HTTPConnection.last_used :module: cheroot.server :value: None .. py:attribute:: HTTPConnection.linger :module: cheroot.server :value: False .. py:property:: HTTPConnection.peer_gid :module: cheroot.server Return the group id of the connected peer process. .. py:property:: HTTPConnection.peer_group :module: cheroot.server Return the group of the connected peer process. .. py:property:: HTTPConnection.peer_pid :module: cheroot.server Return the id of the connected peer process. .. py:property:: HTTPConnection.peer_uid :module: cheroot.server Return the user id of the connected peer process. .. py:property:: HTTPConnection.peer_user :module: cheroot.server Return the username of the connected peer process. .. py:attribute:: HTTPConnection.peercreds_enabled :module: cheroot.server :value: False .. py:attribute:: HTTPConnection.peercreds_resolve_enabled :module: cheroot.server :value: False .. py:attribute:: HTTPConnection.rbufsize :module: cheroot.server :value: 131072 .. py:attribute:: HTTPConnection.remote_addr :module: cheroot.server :value: None .. py:attribute:: HTTPConnection.remote_port :module: cheroot.server :value: None .. py:method:: HTTPConnection.resolve_peer_creds() :module: cheroot.server Look up the username and group tuple of the ``PEERCREDS``. :returns: the username and group tuple of the ``PEERCREDS`` :raises NotImplementedError: if the OS is unsupported :raises RuntimeError: if UID/GID lookup is unsupported or disabled .. py:attribute:: HTTPConnection.ssl_env :module: cheroot.server :value: None .. py:attribute:: HTTPConnection.wbufsize :module: cheroot.server :value: 131072 .. py:class:: HTTPRequest(server, conn, proxy_mode=False, strict_mode=True) :module: cheroot.server Bases: :py:class:`object` An HTTP Request (and response). A single HTTP connection may consist of multiple request/response pairs. .. py:attribute:: HTTPRequest.chunked_write :module: cheroot.server :value: False If True, output will be encoded with the "chunked" transfer-coding. This value is set automatically inside send_headers. .. py:attribute:: HTTPRequest.close_connection :module: cheroot.server :value: False Signals the calling Connection that the request should close. This does not imply an error! The client and/or server may each request that the connection be closed. .. py:attribute:: HTTPRequest.conn :module: cheroot.server :value: None The HTTPConnection object on which this request connected. .. py:method:: HTTPRequest.ensure_headers_sent() :module: cheroot.server Ensure headers are sent to the client if not already sent. .. py:attribute:: HTTPRequest.header_reader :module: cheroot.server :value: A HeaderReader instance or compatible reader. .. py:attribute:: HTTPRequest.inheaders :module: cheroot.server :value: {} A dict of request headers. .. py:attribute:: HTTPRequest.outheaders :module: cheroot.server :value: [] A list of header tuples to write in the response. .. py:method:: HTTPRequest.parse_request() :module: cheroot.server Parse the next HTTP request start-line and message-headers. .. py:method:: HTTPRequest.read_request_headers() :module: cheroot.server Read ``self.rfile`` into ``self.inheaders``. Ref: :py:attr:`self.inheaders `. :returns: success status :rtype: bool .. py:method:: HTTPRequest.read_request_line() :module: cheroot.server Read and parse first line of the HTTP request. Returns: bool: True if the request line is valid or False if it's malformed. .. py:attribute:: HTTPRequest.ready :module: cheroot.server :value: False When True, the request has been parsed and is ready to begin generating the response. When False, signals the calling Connection that the response should not be generated and the connection should close. .. py:method:: HTTPRequest.respond() :module: cheroot.server Call the gateway and write its iterable output. .. py:method:: HTTPRequest.send_headers() :module: cheroot.server Assert, process, and send the HTTP response message-headers. You must set ``self.status``, and :py:attr:`self.outheaders ` before calling this. .. py:attribute:: HTTPRequest.server :module: cheroot.server :value: None The HTTPServer object which is receiving this request. .. py:method:: HTTPRequest.simple_response(status, msg='') :module: cheroot.server Write a simple response back to the client. .. py:method:: HTTPRequest.write(chunk) :module: cheroot.server Write unbuffered data to the client. .. py:class:: HTTPServer(bind_addr, gateway, minthreads=10, maxthreads=-1, server_name=None, peercreds_enabled=False, peercreds_resolve_enabled=False, reuse_port=False) :module: cheroot.server Bases: :py:class:`object` An HTTP server. .. py:attribute:: HTTPServer.ConnectionClass :module: cheroot.server The class to use for handling HTTP connections. alias of :py:class:`~cheroot.server.HTTPConnection` .. py:attribute:: HTTPServer._bind_addr :module: cheroot.server :value: '127.0.0.1' .. py:attribute:: HTTPServer._interrupt :module: cheroot.server :value: None .. py:method:: HTTPServer._make_socket_reusable(socket_, bind_addr) :module: cheroot.server :staticmethod: .. py:method:: HTTPServer._run_in_thread() :module: cheroot.server Context manager for running this server in a thread. .. py:method:: HTTPServer._serve_unservicable() :module: cheroot.server Serve connections we can't handle a 503. .. py:property:: HTTPServer._stopping_for_interrupt :module: cheroot.server Return whether the server is responding to an interrupt. .. py:method:: HTTPServer.bind(family, type, proto=0) :module: cheroot.server Create (or recreate) the actual socket object. .. py:property:: HTTPServer.bind_addr :module: cheroot.server Return the interface on which to listen for connections. For TCP sockets, a (host, port) tuple. Host values may be any :term:`IPv4` or :term:`IPv6` address, or any valid hostname. The string 'localhost' is a synonym for '127.0.0.1' (or '::1', if your hosts file prefers :term:`IPv6`). The string '0.0.0.0' is a special :term:`IPv4` entry meaning "any active interface" (INADDR_ANY), and '::' is the similar IN6ADDR_ANY for :term:`IPv6`. The empty string or :py:data:`None` are not allowed. For UNIX sockets, supply the file name as a string. Systemd socket activation is automatic and doesn't require tempering with this variable. .. glossary:: :abbr:`IPv4 (Internet Protocol version 4)` Internet Protocol version 4 :abbr:`IPv6 (Internet Protocol version 6)` Internet Protocol version 6 .. py:method:: HTTPServer.bind_socket(socket_, bind_addr) :module: cheroot.server :staticmethod: Bind the socket to given interface. .. py:method:: HTTPServer.bind_unix_socket(bind_addr) :module: cheroot.server Create (or recreate) a UNIX socket object. .. py:property:: HTTPServer.can_add_keepalive_connection :module: cheroot.server Flag whether it is allowed to add a new keep-alive connection. .. py:method:: HTTPServer.clear_stats() :module: cheroot.server Reset server stat counters.. .. py:method:: HTTPServer.error_log(msg='', level=20, traceback=False) :module: cheroot.server Write error message to log. :param msg: error message :type msg: str :param level: logging level :type level: int :param traceback: add traceback to output or not :type traceback: bool .. py:attribute:: HTTPServer.expiration_interval :module: cheroot.server :value: 0.5 The interval, in seconds, at which the server checks for expired connections (default 0.5). .. py:attribute:: HTTPServer.gateway :module: cheroot.server :value: None A Gateway instance. .. py:property:: HTTPServer.interrupt :module: cheroot.server Flag interrupt of the server. .. py:attribute:: HTTPServer.keep_alive_conn_limit :module: cheroot.server :value: 10 Maximum number of waiting keep-alive connections that will be kept open. Default is 10. Set to None to have unlimited connections. .. py:attribute:: HTTPServer.max_request_body_size :module: cheroot.server :value: 0 The maximum size, in bytes, for request bodies, or 0 for no limit. .. py:attribute:: HTTPServer.max_request_header_size :module: cheroot.server :value: 0 The maximum size, in bytes, for request headers, or 0 for no limit. .. py:attribute:: HTTPServer.maxthreads :module: cheroot.server :value: None The maximum number of worker threads to create. (default -1 = no limit) .. py:attribute:: HTTPServer.minthreads :module: cheroot.server :value: None The minimum number of worker threads to create (default 10). .. py:attribute:: HTTPServer.nodelay :module: cheroot.server :value: True If True (the default since 3.1), sets the TCP_NODELAY socket option. .. py:attribute:: HTTPServer.peercreds_enabled :module: cheroot.server :value: False Whether :py:data:`True`, peer credentials will be looked up via UNIX domain socket. .. py:attribute:: HTTPServer.peercreds_resolve_enabled :module: cheroot.server :value: False If :py:data:`True`, username/group will be looked up in the OS from ``PEERCREDS``-provided IDs. .. py:method:: HTTPServer.prepare() :module: cheroot.server Prepare server to serving requests. It binds a socket's port, setups the socket to ``listen()`` and does other preparing things. .. py:method:: HTTPServer.prepare_socket(bind_addr, family, type, proto, nodelay, ssl_adapter, reuse_port=False) :module: cheroot.server :classmethod: Create and prepare the socket object. .. py:method:: HTTPServer.process_conn(conn) :module: cheroot.server Process an incoming HTTPConnection. .. py:attribute:: HTTPServer.protocol :module: cheroot.server :value: 'HTTP/1.1' The version string to write in the Status-Line of all HTTP responses. For example, "HTTP/1.1" is the default. This also limits the supported features used in the response. .. py:method:: HTTPServer.put_conn(conn) :module: cheroot.server Put an idle connection back into the ConnectionManager. .. py:attribute:: HTTPServer.ready :module: cheroot.server :value: False Internal flag which indicating the socket is accepting connections. .. py:attribute:: HTTPServer.request_queue_size :module: cheroot.server :value: 5 The 'backlog' argument to ``socket.listen()``. Maximum queued connections (default 5). .. py:method:: HTTPServer.resolve_real_bind_addr(socket_) :module: cheroot.server :staticmethod: Retrieve actual bind address from bound socket. .. py:attribute:: HTTPServer.reuse_port :module: cheroot.server :value: False If True, set SO_REUSEPORT on the socket. .. py:method:: HTTPServer.runtime() :module: cheroot.server Return server uptime. .. py:method:: HTTPServer.safe_start() :module: cheroot.server Run the server forever, and stop it cleanly on exit. .. py:method:: HTTPServer.serve() :module: cheroot.server Serve requests, after invoking :func:`prepare()`. .. py:attribute:: HTTPServer.server_name :module: cheroot.server :value: None The name of the server; defaults to ``self.version``. .. py:attribute:: HTTPServer.shutdown_timeout :module: cheroot.server :value: 5 The total time to wait for worker threads to cleanly exit. Specified in seconds. .. py:attribute:: HTTPServer.software :module: cheroot.server :value: None The value to set for the SERVER_SOFTWARE entry in the WSGI environ. If None, this defaults to ``'%s Server' % self.version``. .. py:attribute:: HTTPServer.ssl_adapter :module: cheroot.server :value: None An instance of ``ssl.Adapter`` (or a subclass). Ref: :py:class:`ssl.Adapter `. You must have the corresponding TLS driver library installed. .. py:method:: HTTPServer.start() :module: cheroot.server Run the server forever. It is shortcut for invoking :func:`prepare()` then :func:`serve()`. .. py:method:: HTTPServer.stop() :module: cheroot.server Gracefully shutdown a server that is serving forever. .. py:attribute:: HTTPServer.timeout :module: cheroot.server :value: 10 The timeout in seconds for accepted connections (default 10). .. py:attribute:: HTTPServer.version :module: cheroot.server :value: 'Cheroot/11.1.0' A version string for the HTTPServer. .. py:class:: HeaderReader() :module: cheroot.server Bases: :py:class:`object` Object for reading headers from an HTTP request. Interface and default implementation. .. py:method:: HeaderReader._allow_header(key_name) :module: cheroot.server .. py:method:: HeaderReader._transform_key(key_name) :module: cheroot.server .. py:class:: KnownLengthRFile(rfile, content_length) :module: cheroot.server Bases: :py:class:`object` Wraps a file-like object, returning an empty string when exhausted. :param rfile: ``file`` of a known size :param int content_length: length of the file being read .. py:method:: KnownLengthRFile.close() :module: cheroot.server Release resources allocated for ``rfile``. .. py:method:: KnownLengthRFile.next() :module: cheroot.server Generate next file chunk. .. py:method:: KnownLengthRFile.read(size=None) :module: cheroot.server Read a chunk from ``rfile`` buffer and return it. :param size: amount of data to read :type size: int :rtype: bytes :returns: chunk from ``rfile``, limited by size if specified .. py:method:: KnownLengthRFile.readline(size=None) :module: cheroot.server Read a single line from ``rfile`` buffer and return it. :param size: minimum amount of data to read :type size: int :returns: one line from ``rfile`` :rtype: bytes .. py:method:: KnownLengthRFile.readlines(sizehint=0) :module: cheroot.server Read all lines from ``rfile`` buffer and return them. :param sizehint: hint of minimum amount of data to read :type sizehint: int :returns: lines of bytes read from ``rfile`` :rtype: list[bytes] .. py:class:: SizeCheckWrapper(rfile, maxlen) :module: cheroot.server Bases: :py:class:`object` Wraps a file-like object, raising MaxSizeExceeded if too large. :param rfile: ``file`` of a limited size :param int maxlen: maximum length of the file being read .. py:method:: SizeCheckWrapper._check_length() :module: cheroot.server .. py:method:: SizeCheckWrapper.close() :module: cheroot.server Release resources allocated for ``rfile``. .. py:method:: SizeCheckWrapper.next() :module: cheroot.server Generate next file chunk. .. py:method:: SizeCheckWrapper.read(size=None) :module: cheroot.server Read a chunk from ``rfile`` buffer and return it. :param size: amount of data to read :type size: int :returns: chunk from ``rfile``, limited by size if specified :rtype: bytes .. py:method:: SizeCheckWrapper.readline(size=None) :module: cheroot.server Read a single line from ``rfile`` buffer and return it. :param size: minimum amount of data to read :type size: int :returns: one line from ``rfile`` :rtype: bytes .. py:method:: SizeCheckWrapper.readlines(sizehint=0) :module: cheroot.server Read all lines from ``rfile`` buffer and return them. :param sizehint: hint of minimum amount of data to read :type sizehint: int :returns: lines of bytes read from ``rfile`` :rtype: list[bytes] .. py:function:: get_ssl_adapter_class(name='builtin') :module: cheroot.server Return an SSL adapter class for the given name. [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', >) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/server.py:docstring of cheroot.server.HTTPConnection:1: syntax error in arglist ('server, sock, makefile='): invalid syntax (, line 1) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', ...>) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Yields [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Ytype [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Raises: [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Raises [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Returns: [i18n] PATCH: 'docutils.nodes.term' to have rawsource: IP... [i18n] PATCH: 'docutils.nodes.term' to have rawsource: IP... [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.server.rst:2: section "cheroot.server module" gets labeled as "cheroot.server module" reading sources... [ 39%] pkg/cheroot.ssl [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.ssl') [app] emitting event: 'source-read'('pkg/cheroot.ssl', ['cheroot.ssl package\n===================\n\nSubmodules\n----------\n\n.. toctree::\n :maxdepth: 4\n\n cheroot.ssl.builtin\n cheroot.ssl.pyopenssl\n\nModule contents\n---------------\n\n.. automodule:: cheroot.ssl\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.rst:16: input: .. automodule:: cheroot.ssl :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.ssl [autodoc] import cheroot.ssl => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.ssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.ssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Implementation of the SSL adapter base interface.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ABC', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Adapter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/__pycache__/__init__.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Implementation of the SSL adapter base interface.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/__init__.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46200bc950>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.ssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.ssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl'], True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.ssl', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46200bc950>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl']), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'abstractmethod', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl import ABC [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'ABC') [autodoc] => [autodoc] from cheroot.ssl import Adapter [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] from cheroot.ssl import abstractmethod [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'abstractmethod') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.Adapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.Adapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.Adapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Base class for SSL driver library adapters.', '', 'Required methods:', '', ' * ``wrap(sock) -> (wrapped socket, ssl environ dict)``', " * ``makefile(sock, mode='r', bufsize=DEFAULT_BUFFER_SIZE) ->", ' socket file object``', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset({'makefile', 'get_environ', 'wrap', 'bind', '__init__'}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.ssl', '__firstlineno__': 6, '__doc__': "Base class for SSL driver library adapters.\n\nRequired methods:\n\n * ``wrap(sock) -> (wrapped socket, ssl environ dict)``\n * ``makefile(sock, mode='r', bufsize=DEFAULT_BUFFER_SIZE) ->\n socket file object``\n", '__init__': , 'bind': , 'wrap': , 'get_environ': , 'makefile': , '__static_attributes__': ('certificate', 'certificate_chain', 'ciphers', 'context', 'private_key', 'private_key_password'), '__dict__': , '__weakref__': , '__abstractmethods__': frozenset({'makefile', 'get_environ', 'wrap', 'bind', '__init__'}), '_abc_impl': <_abc._abc_data object at 0x7f462319d400>, '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', "Base class for SSL driver library adapters.\n\nRequired methods:\n\n * ``wrap(sock) -> (wrapped socket, ssl environ dict)``\n * ``makefile(sock, mode='r', bufsize=DEFAULT_BUFFER_SIZE) ->\n socket file object``\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 6, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('certificate', 'certificate_chain', 'ciphers', 'context', 'private_key', 'private_key_password'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f462319d400>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'wrap', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl import Adapter._abc_impl [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f462319d400> [autodoc] from cheroot.ssl import Adapter.bind [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [autodoc] from cheroot.ssl import Adapter.get_environ [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [autodoc] from cheroot.ssl import Adapter.makefile [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'makefile') [autodoc] => [autodoc] from cheroot.ssl import Adapter.wrap [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'wrap') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.Adapter._abc_impl', <_abc._abc_data object at 0x7f462319d400>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap and return the given socket.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return WSGI environ entries to be merged into each request.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='r', bufsize=-1)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return socket file object.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.wrap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.wrap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap and return the given socket, plus WSGI environ entries.', '']) [autodoc] output: .. py:module:: cheroot.ssl Implementation of the SSL adapter base interface. .. py:class:: Adapter(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None) :module: cheroot.ssl Bases: :py:class:`~abc.ABC` Base class for SSL driver library adapters. Required methods: * ``wrap(sock) -> (wrapped socket, ssl environ dict)`` * ``makefile(sock, mode='r', bufsize=DEFAULT_BUFFER_SIZE) -> socket file object`` .. py:attribute:: Adapter._abc_impl :module: cheroot.ssl :value: <_abc._abc_data object> .. py:method:: Adapter.bind(sock) :module: cheroot.ssl :abstractmethod: Wrap and return the given socket. .. py:method:: Adapter.get_environ() :module: cheroot.ssl :abstractmethod: Return WSGI environ entries to be merged into each request. .. py:method:: Adapter.makefile(sock, mode='r', bufsize=-1) :module: cheroot.ssl :abstractmethod: Return socket file object. .. py:method:: Adapter.wrap(sock) :module: cheroot.ssl :abstractmethod: Wrap and return the given socket, plus WSGI environ entries. [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.rst:2: section "cheroot.ssl package" gets labeled as "cheroot.ssl package" reading sources... [ 42%] pkg/cheroot.ssl.builtin [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.ssl.builtin') [app] emitting event: 'source-read'('pkg/cheroot.ssl.builtin', ['cheroot.ssl.builtin module\n==========================\n\n.. automodule:: cheroot.ssl.builtin\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.builtin.rst:4: input: .. automodule:: cheroot.ssl.builtin :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.ssl.builtin [autodoc] import cheroot.ssl.builtin => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.ssl.builtin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.ssl.builtin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["A library for integrating Python's builtin :py:mod:`ssl` library with Cheroot.", '', 'The :py:mod:`ssl` module must be importable for SSL functionality.', '', 'To use this module, set ``HTTPServer.ssl_adapter`` to an instance of', '``BuiltinSSLAdapter``.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'Adapter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'BuiltinSSLAdapter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'DEFAULT_BUFFER_SIZE', 131072, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'StreamReader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/__pycache__/builtin.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', "\nA library for integrating Python's builtin :py:mod:`ssl` library with Cheroot.\n\nThe :py:mod:`ssl` module must be importable for SSL functionality.\n\nTo use this module, set ``HTTPServer.ssl_adapter`` to an instance of\n``BuiltinSSLAdapter``.\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/builtin.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f462059eb70>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.ssl.builtin', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.ssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.ssl.builtin', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f462059eb70>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/builtin.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_assert_ssl_exc_contains', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_loopback_for_cert', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_loopback_for_cert_thread', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_parse_cert', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_sni_callback', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ssl', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'suppress', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.builtin import Adapter [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] from cheroot.ssl.builtin import HTTPServer [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] from cheroot.ssl.builtin import StreamReader [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] from cheroot.ssl.builtin import StreamWriter [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'StreamWriter') [autodoc] => [autodoc] from cheroot.ssl.builtin import _assert_ssl_exc_contains [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_assert_ssl_exc_contains') [autodoc] => [autodoc] from cheroot.ssl.builtin import _loopback_for_cert [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_loopback_for_cert') [autodoc] => [autodoc] from cheroot.ssl.builtin import _loopback_for_cert_thread [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_loopback_for_cert_thread') [autodoc] => [autodoc] from cheroot.ssl.builtin import _parse_cert [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_parse_cert') [autodoc] => [autodoc] from cheroot.ssl.builtin import _sni_callback [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_sni_callback') [autodoc] => [autodoc] from cheroot.ssl.builtin import suppress [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'suppress') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.builtin.BuiltinSSLAdapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.builtin.BuiltinSSLAdapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.builtin.BuiltinSSLAdapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["Wrapper for integrating Python's builtin :py:mod:`ssl` with Cheroot.", '']) [app] emitting event: 'autodoc-skip-member'('class', 'CERT_KEY_TO_ENV', {'version': 'M_VERSION', 'serialNumber': 'M_SERIAL', 'notBefore': 'V_START', 'notAfter': 'V_END', 'subject': 'S_DN', 'issuer': 'I_DN', 'subjectAltName': 'SAN'}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'CERT_KEY_TO_LDAP_CODE', {'countryName': 'C', 'stateOrProvinceName': 'ST', 'localityName': 'L', 'organizationName': 'O', 'organizationalUnitName': 'OU', 'commonName': 'CN', 'title': 'T', 'initials': 'I', 'givenName': 'G', 'surname': 'S', 'description': 'D', 'userid': 'UID', 'emailAddress': 'Email'}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', "Wrapper for integrating Python's builtin :py:mod:`ssl` with Cheroot.", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 162, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.builtin', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_context', '_server_env', 'context'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f4620319f80>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_make_env_cert_dict', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_make_env_dn_dict', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_make_env_san_dict', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'certificate', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'certificate_chain', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ciphers', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'context', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'private_key', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'private_key_password', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'wrap', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.CERT_KEY_TO_ENV [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'CERT_KEY_TO_ENV') [autodoc] => {'version': 'M_VERSION', 'serialNumber': 'M_SERIAL', 'notBefore': 'V_START', 'notAfter': 'V_END', 'subject': 'S_DN', 'issuer': 'I_DN', 'subjectAltName': 'SAN'} [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.CERT_KEY_TO_LDAP_CODE [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'CERT_KEY_TO_LDAP_CODE') [autodoc] => {'countryName': 'C', 'stateOrProvinceName': 'ST', 'localityName': 'L', 'organizationName': 'O', 'organizationalUnitName': 'OU', 'commonName': 'CN', 'title': 'T', 'initials': 'I', 'givenName': 'G', 'surname': 'S', 'description': 'D', 'userid': 'UID', 'emailAddress': 'Email'} [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter._abc_impl [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f4620319f80> [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter._make_env_cert_dict [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, '_make_env_cert_dict') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter._make_env_dn_dict [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, '_make_env_dn_dict') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter._make_env_san_dict [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, '_make_env_san_dict') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.bind [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.certificate [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate') [autodoc] => None [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.certificate_chain [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate_chain') [autodoc] => None [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.ciphers [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'ciphers') [autodoc] => None [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.context [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'context') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.get_environ [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.makefile [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'makefile') [autodoc] => [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.private_key [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'private_key') [autodoc] => None [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.private_key_password [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'private_key_password') [autodoc] => None [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.wrap [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'wrap') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.CERT_KEY_TO_ENV', {'version': 'M_VERSION', 'serialNumber': 'M_SERIAL', 'notBefore': 'V_START', 'notAfter': 'V_END', 'subject': 'S_DN', 'issuer': 'I_DN', 'subjectAltName': 'SAN'}, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.CERT_KEY_TO_LDAP_CODE', {'countryName': 'C', 'stateOrProvinceName': 'ST', 'localityName': 'L', 'organizationName': 'O', 'organizationalUnitName': 'OU', 'commonName': 'CN', 'title': 'T', 'initials': 'I', 'givenName': 'G', 'surname': 'S', 'description': 'D', 'userid': 'UID', 'emailAddress': 'Email'}, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter._abc_impl', <_abc._abc_data object at 0x7f4620319f80>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_cert_dict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(env_prefix, parsed_cert)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_cert_dict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a dict of WSGI environment variables for a certificate.', '', 'E.g. SSL_CLIENT_M_VERSION, SSL_CLIENT_M_SERIAL, etc.', 'See https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_dn_dict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(env_prefix, cert_value)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_dn_dict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a dict of WSGI environment variables for a certificate DN.', '', 'E.g. SSL_CLIENT_S_DN_CN, SSL_CLIENT_S_DN_C, etc.', 'See SSL_CLIENT_S_DN_x509 at', 'https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_san_dict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(env_prefix, cert_value)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_san_dict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a dict of WSGI environment variables for a certificate DN.', '', 'E.g. SSL_CLIENT_SAN_Email_0, SSL_CLIENT_SAN_DNS_0, etc.', 'See SSL_CLIENT_SAN_* at', 'https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap and return the given socket.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The file name of the server SSL certificate.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate_chain', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate_chain', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The file name of the certificate chain file.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.ciphers', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.ciphers', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The ciphers list of SSL.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.ssl.builtin.BuiltinSSLAdapter.context', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.ssl.builtin.BuiltinSSLAdapter.context', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, [':py:class:`~ssl.SSLContext` that will be used to wrap sockets.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create WSGI environ entries to be merged into each request.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='r', bufsize=131072)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return socket file object.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["The file name of the server's private key file.", '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key_password', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key_password', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Optional passphrase for password protected private key.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.wrap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.wrap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap and return the given socket, plus WSGI environ entries.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._assert_ssl_exc_contains', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(exc, *msgs)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._assert_ssl_exc_contains', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check whether SSL exception contains either of messages provided.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._loopback_for_cert', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(certificate, private_key, certificate_chain, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._loopback_for_cert', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create a loopback connection to parse a cert with a private key.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._loopback_for_cert_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(context, server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._loopback_for_cert_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap a socket in ssl and perform the server-side handshake.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._parse_cert', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(certificate, private_key, certificate_chain, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._parse_cert', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Parse a certificate.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._sni_callback', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock, sni, context)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._sni_callback', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Handle the SNI callback to tag the socket with the SNI.', '']) [autodoc] output: .. py:module:: cheroot.ssl.builtin A library for integrating Python's builtin :py:mod:`ssl` library with Cheroot. The :py:mod:`ssl` module must be importable for SSL functionality. To use this module, set ``HTTPServer.ssl_adapter`` to an instance of ``BuiltinSSLAdapter``. .. py:class:: BuiltinSSLAdapter(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None) :module: cheroot.ssl.builtin Bases: :py:class:`~cheroot.ssl.Adapter` Wrapper for integrating Python's builtin :py:mod:`ssl` with Cheroot. .. py:attribute:: BuiltinSSLAdapter.CERT_KEY_TO_ENV :module: cheroot.ssl.builtin :value: {'issuer': 'I_DN', 'notAfter': 'V_END', 'notBefore': 'V_START', 'serialNumber': 'M_SERIAL', 'subject': 'S_DN', 'subjectAltName': 'SAN', 'version': 'M_VERSION'} .. py:attribute:: BuiltinSSLAdapter.CERT_KEY_TO_LDAP_CODE :module: cheroot.ssl.builtin :value: {'commonName': 'CN', 'countryName': 'C', 'description': 'D', 'emailAddress': 'Email', 'givenName': 'G', 'initials': 'I', 'localityName': 'L', 'organizationName': 'O', 'organizationalUnitName': 'OU', 'stateOrProvinceName': 'ST', 'surname': 'S', 'title': 'T', 'userid': 'UID'} .. py:attribute:: BuiltinSSLAdapter._abc_impl :module: cheroot.ssl.builtin :value: <_abc._abc_data object> .. py:method:: BuiltinSSLAdapter._make_env_cert_dict(env_prefix, parsed_cert) :module: cheroot.ssl.builtin Return a dict of WSGI environment variables for a certificate. E.g. SSL_CLIENT_M_VERSION, SSL_CLIENT_M_SERIAL, etc. See https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars. .. py:method:: BuiltinSSLAdapter._make_env_dn_dict(env_prefix, cert_value) :module: cheroot.ssl.builtin Return a dict of WSGI environment variables for a certificate DN. E.g. SSL_CLIENT_S_DN_CN, SSL_CLIENT_S_DN_C, etc. See SSL_CLIENT_S_DN_x509 at https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars. .. py:method:: BuiltinSSLAdapter._make_env_san_dict(env_prefix, cert_value) :module: cheroot.ssl.builtin Return a dict of WSGI environment variables for a certificate DN. E.g. SSL_CLIENT_SAN_Email_0, SSL_CLIENT_SAN_DNS_0, etc. See SSL_CLIENT_SAN_* at https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars. .. py:method:: BuiltinSSLAdapter.bind(sock) :module: cheroot.ssl.builtin Wrap and return the given socket. .. py:attribute:: BuiltinSSLAdapter.certificate :module: cheroot.ssl.builtin :value: None The file name of the server SSL certificate. .. py:attribute:: BuiltinSSLAdapter.certificate_chain :module: cheroot.ssl.builtin :value: None The file name of the certificate chain file. .. py:attribute:: BuiltinSSLAdapter.ciphers :module: cheroot.ssl.builtin :value: None The ciphers list of SSL. .. py:property:: BuiltinSSLAdapter.context :module: cheroot.ssl.builtin :py:class:`~ssl.SSLContext` that will be used to wrap sockets. .. py:method:: BuiltinSSLAdapter.get_environ(sock) :module: cheroot.ssl.builtin Create WSGI environ entries to be merged into each request. .. py:method:: BuiltinSSLAdapter.makefile(sock, mode='r', bufsize=131072) :module: cheroot.ssl.builtin Return socket file object. .. py:attribute:: BuiltinSSLAdapter.private_key :module: cheroot.ssl.builtin :value: None The file name of the server's private key file. .. py:attribute:: BuiltinSSLAdapter.private_key_password :module: cheroot.ssl.builtin :value: None Optional passphrase for password protected private key. .. py:method:: BuiltinSSLAdapter.wrap(sock) :module: cheroot.ssl.builtin Wrap and return the given socket, plus WSGI environ entries. .. py:function:: _assert_ssl_exc_contains(exc, *msgs) :module: cheroot.ssl.builtin Check whether SSL exception contains either of messages provided. .. py:function:: _loopback_for_cert(certificate, private_key, certificate_chain, *, private_key_password=None) :module: cheroot.ssl.builtin Create a loopback connection to parse a cert with a private key. .. py:function:: _loopback_for_cert_thread(context, server) :module: cheroot.ssl.builtin Wrap a socket in ssl and perform the server-side handshake. .. py:function:: _parse_cert(certificate, private_key, certificate_chain, *, private_key_password=None) :module: cheroot.ssl.builtin Parse a certificate. .. py:function:: _sni_callback(sock, sni, context) :module: cheroot.ssl.builtin Handle the SNI callback to tag the socket with the SNI. [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.builtin.rst:2: section "cheroot.ssl.builtin module" gets labeled as "cheroot.ssl.builtin module" reading sources... [ 44%] pkg/cheroot.ssl.pyopenssl [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.ssl.pyopenssl') [app] emitting event: 'source-read'('pkg/cheroot.ssl.pyopenssl', ['cheroot.ssl.pyopenssl module\n============================\n\n.. automodule:: cheroot.ssl.pyopenssl\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.pyopenssl.rst:4: input: .. automodule:: cheroot.ssl.pyopenssl :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.ssl.pyopenssl [autodoc] import cheroot.ssl.pyopenssl => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.ssl.pyopenssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.ssl.pyopenssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A library for integrating :doc:`pyOpenSSL ` with Cheroot.', '', 'The :py:mod:`OpenSSL ` module must be importable', 'for SSL/TLS/HTTPS functionality.', 'You can obtain it from `here `_.', '', 'To use this module, set :py:attr:`HTTPServer.ssl_adapter', '` to an instance of', ':py:class:`ssl.Adapter `.', 'There are two ways to use :abbr:`TLS (Transport-Level Security)`:', '', 'Method One', '----------', '', ' * :py:attr:`ssl_adapter.context', ' `: an instance of', ' :py:class:`SSL.Context `.', '', 'If this is not None, it is assumed to be an :py:class:`SSL.Context', '` instance, and will be passed to', ':py:class:`SSL.Connection ` on bind().', 'The developer is responsible for forming a valid :py:class:`Context', '` object. This', 'approach is to be preferred for more flexibility, e.g. if the cert and', 'key are streams instead of files, or need decryption, or', ':py:data:`SSL.SSLv3_METHOD `', 'is desired instead of the default :py:data:`SSL.SSLv23_METHOD', '`, etc. Consult', 'the :doc:`pyOpenSSL ` documentation for', 'complete options.', '', 'Method Two (shortcut)', '---------------------', '', ' * :py:attr:`ssl_adapter.certificate', ' `: the file name', " of the server's TLS certificate.", ' * :py:attr:`ssl_adapter.private_key', ' `: the file name', " of the server's private key file.", '', 'Both are :py:data:`None` by default. If :py:attr:`ssl_adapter.context', '` is :py:data:`None`,', 'but ``.private_key`` and ``.certificate`` are both given and valid, they', 'will be read, and the context will be automatically created from them.', '', '.. spelling::', '', ' pyopenssl', '']) [app] emitting event: 'autodoc-skip-member'('module', 'Adapter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'OpenSSL', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SSL', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SSLConnection', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SSLConnectionProxyMeta', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SSLFileobjectMixin', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SSLFileobjectStreamReader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SSLFileobjectStreamWriter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'StreamReader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/__pycache__/pyopenssl.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', "\nA library for integrating :doc:`pyOpenSSL ` with Cheroot.\n\nThe :py:mod:`OpenSSL ` module must be importable\nfor SSL/TLS/HTTPS functionality.\nYou can obtain it from `here `_.\n\nTo use this module, set :py:attr:`HTTPServer.ssl_adapter\n` to an instance of\n:py:class:`ssl.Adapter `.\nThere are two ways to use :abbr:`TLS (Transport-Level Security)`:\n\nMethod One\n----------\n\n * :py:attr:`ssl_adapter.context\n `: an instance of\n :py:class:`SSL.Context `.\n\nIf this is not None, it is assumed to be an :py:class:`SSL.Context\n` instance, and will be passed to\n:py:class:`SSL.Connection ` on bind().\nThe developer is responsible for forming a valid :py:class:`Context\n` object. This\napproach is to be preferred for more flexibility, e.g. if the cert and\nkey are streams instead of files, or need decryption, or\n:py:data:`SSL.SSLv3_METHOD `\nis desired instead of the default :py:data:`SSL.SSLv23_METHOD\n`, etc. Consult\nthe :doc:`pyOpenSSL ` documentation for\ncomplete options.\n\nMethod Two (shortcut)\n---------------------\n\n * :py:attr:`ssl_adapter.certificate\n `: the file name\n of the server's TLS certificate.\n * :py:attr:`ssl_adapter.private_key\n `: the file name\n of the server's private key file.\n\nBoth are :py:data:`None` by default. If :py:attr:`ssl_adapter.context\n` is :py:data:`None`,\nbut ``.private_key`` and ``.certificate`` are both given and valid, they\nwill be read, and the context will be automatically created from them.\n\n.. spelling::\n\n pyopenssl\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f4620186d50>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.ssl.pyopenssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.ssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.ssl.pyopenssl', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f4620186d50>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_warn', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'crypto', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pyOpenSSLAdapter', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ssl_conn_type', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.pyopenssl import Adapter [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLConnection [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLConnectionProxyMeta [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnectionProxyMeta') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectStreamReader [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectStreamReader') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectStreamWriter [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectStreamWriter') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import StreamReader [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import StreamWriter [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'StreamWriter') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import _warn [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, '_warn') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import ssl_conn_type [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'ssl_conn_type') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLConnection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLConnection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLConnection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A thread-safe wrapper for an ``SSL.Connection``.', '', ':param tuple args: the arguments to create the wrapped \\', ' :py:class:`SSL.Connection(*args) \\', ' `', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.ssl.pyopenssl', '__firstlineno__': 260, '__doc__': 'A thread-safe wrapper for an ``SSL.Connection``.\n\n:param tuple args: the arguments to create the wrapped \\\n :py:class:`SSL.Connection(*args) \\\n `\n', '__init__': , '__static_attributes__': ('_lock', '_ssl_conn'), 'get_context': .lock_decorator..proxy_wrapper at 0x7f460bba6b90>, 'pending': .lock_decorator..proxy_wrapper at 0x7f460bba6c40>, 'send': .lock_decorator..proxy_wrapper at 0x7f460bba6cf0>, 'write': .lock_decorator..proxy_wrapper at 0x7f460bba6da0>, 'recv': .lock_decorator..proxy_wrapper at 0x7f460bba6e50>, 'read': .lock_decorator..proxy_wrapper at 0x7f460bba6f00>, 'renegotiate': .lock_decorator..proxy_wrapper at 0x7f460bba6fb0>, 'bind': .lock_decorator..proxy_wrapper at 0x7f460bba7060>, 'listen': .lock_decorator..proxy_wrapper at 0x7f460bba7110>, 'connect': .lock_decorator..proxy_wrapper at 0x7f460bba71c0>, 'accept': .lock_decorator..proxy_wrapper at 0x7f460bba7270>, 'setblocking': .lock_decorator..proxy_wrapper at 0x7f460bba7320>, 'fileno': .lock_decorator..proxy_wrapper at 0x7f460bba73d0>, 'close': .lock_decorator..proxy_wrapper at 0x7f460bba7480>, 'get_cipher_list': .lock_decorator..proxy_wrapper at 0x7f460bba7530>, 'getpeername': .lock_decorator..proxy_wrapper at 0x7f460bba75e0>, 'getsockname': .lock_decorator..proxy_wrapper at 0x7f460bba7690>, 'getsockopt': .lock_decorator..proxy_wrapper at 0x7f460bba7740>, 'setsockopt': .lock_decorator..proxy_wrapper at 0x7f460bba77f0>, 'makefile': .lock_decorator..proxy_wrapper at 0x7f460bba78a0>, 'get_app_data': .lock_decorator..proxy_wrapper at 0x7f460bba7950>, 'set_app_data': .lock_decorator..proxy_wrapper at 0x7f460bba7a00>, 'state_string': .lock_decorator..proxy_wrapper at 0x7f460bba7ab0>, 'sock_shutdown': .lock_decorator..proxy_wrapper at 0x7f460bba7b60>, 'get_peer_certificate': .lock_decorator..proxy_wrapper at 0x7f460bba7c10>, 'want_read': .lock_decorator..proxy_wrapper at 0x7f460bba7cc0>, 'want_write': .lock_decorator..proxy_wrapper at 0x7f460bba7d70>, 'set_connect_state': .lock_decorator..proxy_wrapper at 0x7f460bba7e20>, 'set_accept_state': .lock_decorator..proxy_wrapper at 0x7f460bba7ed0>, 'connect_ex': .lock_decorator..proxy_wrapper at 0x7f460bba8040>, 'sendall': .lock_decorator..proxy_wrapper at 0x7f460bba80f0>, 'settimeout': .lock_decorator..proxy_wrapper at 0x7f460bba81a0>, 'gettimeout': .lock_decorator..proxy_wrapper at 0x7f460bba8250>, 'shutdown': .lock_decorator..proxy_wrapper at 0x7f460bba8300>, 'family': , '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A thread-safe wrapper for an ``SSL.Connection``.\n\n:param tuple args: the arguments to create the wrapped \\\n :py:class:`SSL.Connection(*args) \\\n `\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 260, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_lock', '_ssl_conn'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'accept', .lock_decorator..proxy_wrapper at 0x7f460bba7270>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind', .lock_decorator..proxy_wrapper at 0x7f460bba7060>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', .lock_decorator..proxy_wrapper at 0x7f460bba7480>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'connect', .lock_decorator..proxy_wrapper at 0x7f460bba71c0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'connect_ex', .lock_decorator..proxy_wrapper at 0x7f460bba8040>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'family', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'fileno', .lock_decorator..proxy_wrapper at 0x7f460bba73d0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_app_data', .lock_decorator..proxy_wrapper at 0x7f460bba7950>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_cipher_list', .lock_decorator..proxy_wrapper at 0x7f460bba7530>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_context', .lock_decorator..proxy_wrapper at 0x7f460bba6b90>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_peer_certificate', .lock_decorator..proxy_wrapper at 0x7f460bba7c10>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'getpeername', .lock_decorator..proxy_wrapper at 0x7f460bba75e0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'getsockname', .lock_decorator..proxy_wrapper at 0x7f460bba7690>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'getsockopt', .lock_decorator..proxy_wrapper at 0x7f460bba7740>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'gettimeout', .lock_decorator..proxy_wrapper at 0x7f460bba8250>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'listen', .lock_decorator..proxy_wrapper at 0x7f460bba7110>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', .lock_decorator..proxy_wrapper at 0x7f460bba78a0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'pending', .lock_decorator..proxy_wrapper at 0x7f460bba6c40>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'read', .lock_decorator..proxy_wrapper at 0x7f460bba6f00>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'recv', .lock_decorator..proxy_wrapper at 0x7f460bba6e50>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'renegotiate', .lock_decorator..proxy_wrapper at 0x7f460bba6fb0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'send', .lock_decorator..proxy_wrapper at 0x7f460bba6cf0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'sendall', .lock_decorator..proxy_wrapper at 0x7f460bba80f0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'set_accept_state', .lock_decorator..proxy_wrapper at 0x7f460bba7ed0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'set_app_data', .lock_decorator..proxy_wrapper at 0x7f460bba7a00>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'set_connect_state', .lock_decorator..proxy_wrapper at 0x7f460bba7e20>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'setblocking', .lock_decorator..proxy_wrapper at 0x7f460bba7320>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'setsockopt', .lock_decorator..proxy_wrapper at 0x7f460bba77f0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'settimeout', .lock_decorator..proxy_wrapper at 0x7f460bba81a0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'shutdown', .lock_decorator..proxy_wrapper at 0x7f460bba8300>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'sock_shutdown', .lock_decorator..proxy_wrapper at 0x7f460bba7b60>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'state_string', .lock_decorator..proxy_wrapper at 0x7f460bba7ab0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'want_read', .lock_decorator..proxy_wrapper at 0x7f460bba7cc0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'want_write', .lock_decorator..proxy_wrapper at 0x7f460bba7d70>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'write', .lock_decorator..proxy_wrapper at 0x7f460bba6da0>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.accept [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'accept') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7270> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.bind [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7060> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.close [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7480> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.connect [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'connect') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba71c0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.connect_ex [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'connect_ex') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba8040> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.family [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'family') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.fileno [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'fileno') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba73d0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.get_app_data [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'get_app_data') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7950> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.get_cipher_list [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'get_cipher_list') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7530> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.get_context [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'get_context') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba6b90> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.get_peer_certificate [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'get_peer_certificate') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7c10> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.getpeername [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'getpeername') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba75e0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.getsockname [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'getsockname') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7690> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.getsockopt [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'getsockopt') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7740> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.gettimeout [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'gettimeout') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba8250> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.listen [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'listen') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7110> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.makefile [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'makefile') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba78a0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.pending [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'pending') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba6c40> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.read [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba6f00> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.recv [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'recv') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba6e50> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.renegotiate [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'renegotiate') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba6fb0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.send [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'send') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba6cf0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.sendall [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'sendall') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba80f0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.set_accept_state [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'set_accept_state') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7ed0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.set_app_data [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'set_app_data') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7a00> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.set_connect_state [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'set_connect_state') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7e20> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.setblocking [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'setblocking') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7320> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.setsockopt [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'setsockopt') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba77f0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.settimeout [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'settimeout') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba81a0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.shutdown [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'shutdown') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba8300> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.sock_shutdown [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'sock_shutdown') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7b60> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.state_string [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'state_string') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7ab0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.want_read [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'want_read') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7cc0> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.want_write [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'want_write') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba7d70> [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.write [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => .lock_decorator..proxy_wrapper at 0x7f460bba6da0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7270>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.accept', .lock_decorator..proxy_wrapper at 0x7f460bba7270>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.accept', .lock_decorator..proxy_wrapper at 0x7f460bba7270>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7060>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.bind', .lock_decorator..proxy_wrapper at 0x7f460bba7060>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.bind', .lock_decorator..proxy_wrapper at 0x7f460bba7060>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7480>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.close', .lock_decorator..proxy_wrapper at 0x7f460bba7480>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.close', .lock_decorator..proxy_wrapper at 0x7f460bba7480>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba71c0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect', .lock_decorator..proxy_wrapper at 0x7f460bba71c0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect', .lock_decorator..proxy_wrapper at 0x7f460bba71c0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba8040>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect_ex', .lock_decorator..proxy_wrapper at 0x7f460bba8040>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect_ex', .lock_decorator..proxy_wrapper at 0x7f460bba8040>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.make_property..proxy_prop_wrapper at 0x7f460bba8460>, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.ssl.pyopenssl.SSLConnection.family', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.ssl.pyopenssl.SSLConnection.family', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba73d0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.fileno', .lock_decorator..proxy_wrapper at 0x7f460bba73d0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.fileno', .lock_decorator..proxy_wrapper at 0x7f460bba73d0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7950>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_app_data', .lock_decorator..proxy_wrapper at 0x7f460bba7950>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_app_data', .lock_decorator..proxy_wrapper at 0x7f460bba7950>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7530>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_cipher_list', .lock_decorator..proxy_wrapper at 0x7f460bba7530>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_cipher_list', .lock_decorator..proxy_wrapper at 0x7f460bba7530>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba6b90>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_context', .lock_decorator..proxy_wrapper at 0x7f460bba6b90>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_context', .lock_decorator..proxy_wrapper at 0x7f460bba6b90>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7c10>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_peer_certificate', .lock_decorator..proxy_wrapper at 0x7f460bba7c10>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_peer_certificate', .lock_decorator..proxy_wrapper at 0x7f460bba7c10>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba75e0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getpeername', .lock_decorator..proxy_wrapper at 0x7f460bba75e0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getpeername', .lock_decorator..proxy_wrapper at 0x7f460bba75e0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7690>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockname', .lock_decorator..proxy_wrapper at 0x7f460bba7690>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockname', .lock_decorator..proxy_wrapper at 0x7f460bba7690>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7740>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockopt', .lock_decorator..proxy_wrapper at 0x7f460bba7740>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockopt', .lock_decorator..proxy_wrapper at 0x7f460bba7740>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba8250>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.gettimeout', .lock_decorator..proxy_wrapper at 0x7f460bba8250>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.gettimeout', .lock_decorator..proxy_wrapper at 0x7f460bba8250>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7110>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.listen', .lock_decorator..proxy_wrapper at 0x7f460bba7110>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.listen', .lock_decorator..proxy_wrapper at 0x7f460bba7110>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba78a0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.makefile', .lock_decorator..proxy_wrapper at 0x7f460bba78a0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.makefile', .lock_decorator..proxy_wrapper at 0x7f460bba78a0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba6c40>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.pending', .lock_decorator..proxy_wrapper at 0x7f460bba6c40>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.pending', .lock_decorator..proxy_wrapper at 0x7f460bba6c40>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba6f00>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.read', .lock_decorator..proxy_wrapper at 0x7f460bba6f00>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.read', .lock_decorator..proxy_wrapper at 0x7f460bba6f00>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba6e50>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.recv', .lock_decorator..proxy_wrapper at 0x7f460bba6e50>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.recv', .lock_decorator..proxy_wrapper at 0x7f460bba6e50>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba6fb0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.renegotiate', .lock_decorator..proxy_wrapper at 0x7f460bba6fb0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.renegotiate', .lock_decorator..proxy_wrapper at 0x7f460bba6fb0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba6cf0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.send', .lock_decorator..proxy_wrapper at 0x7f460bba6cf0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.send', .lock_decorator..proxy_wrapper at 0x7f460bba6cf0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba80f0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sendall', .lock_decorator..proxy_wrapper at 0x7f460bba80f0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sendall', .lock_decorator..proxy_wrapper at 0x7f460bba80f0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7ed0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_accept_state', .lock_decorator..proxy_wrapper at 0x7f460bba7ed0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_accept_state', .lock_decorator..proxy_wrapper at 0x7f460bba7ed0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7a00>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_app_data', .lock_decorator..proxy_wrapper at 0x7f460bba7a00>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_app_data', .lock_decorator..proxy_wrapper at 0x7f460bba7a00>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7e20>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_connect_state', .lock_decorator..proxy_wrapper at 0x7f460bba7e20>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_connect_state', .lock_decorator..proxy_wrapper at 0x7f460bba7e20>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7320>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setblocking', .lock_decorator..proxy_wrapper at 0x7f460bba7320>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setblocking', .lock_decorator..proxy_wrapper at 0x7f460bba7320>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba77f0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setsockopt', .lock_decorator..proxy_wrapper at 0x7f460bba77f0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setsockopt', .lock_decorator..proxy_wrapper at 0x7f460bba77f0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba81a0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.settimeout', .lock_decorator..proxy_wrapper at 0x7f460bba81a0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.settimeout', .lock_decorator..proxy_wrapper at 0x7f460bba81a0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba8300>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.shutdown', .lock_decorator..proxy_wrapper at 0x7f460bba8300>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.shutdown', .lock_decorator..proxy_wrapper at 0x7f460bba8300>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7b60>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sock_shutdown', .lock_decorator..proxy_wrapper at 0x7f460bba7b60>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sock_shutdown', .lock_decorator..proxy_wrapper at 0x7f460bba7b60>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7ab0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.state_string', .lock_decorator..proxy_wrapper at 0x7f460bba7ab0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.state_string', .lock_decorator..proxy_wrapper at 0x7f460bba7ab0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7cc0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_read', .lock_decorator..proxy_wrapper at 0x7f460bba7cc0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_read', .lock_decorator..proxy_wrapper at 0x7f460bba7cc0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba7d70>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_write', .lock_decorator..proxy_wrapper at 0x7f460bba7d70>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_write', .lock_decorator..proxy_wrapper at 0x7f460bba7d70>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7f460bba6da0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.write', .lock_decorator..proxy_wrapper at 0x7f460bba6da0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.write', .lock_decorator..proxy_wrapper at 0x7f460bba6da0>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLConnectionProxyMeta', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(name, bases, nmspc)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLConnectionProxyMeta', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLConnectionProxyMeta', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Metaclass for generating a bunch of proxy methods.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.ssl.pyopenssl', '__firstlineno__': 179, '__doc__': 'Metaclass for generating a bunch of proxy methods.', '__new__': )>, '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Metaclass for generating a bunch of proxy methods.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 179, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__new__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLFileobjectMixin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Base mixin for a TLS socket stream.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.ssl.pyopenssl', '__firstlineno__': 81, '__doc__': 'Base mixin for a TLS socket stream.', 'ssl_timeout': 3, 'ssl_retry': 0.01, '_safe_call': , 'recv': , 'readline': , 'sendall': , 'send': , '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Base mixin for a TLS socket stream.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 81, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_safe_call', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'recv', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'send', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'sendall', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_retry', 0.01, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_timeout', 3, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin._safe_call [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, '_safe_call') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.readline [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.recv [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'recv') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.send [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'send') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.sendall [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'sendall') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.ssl_retry [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'ssl_retry') [autodoc] => 0.01 [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.ssl_timeout [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'ssl_timeout') [autodoc] => 3 [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin._safe_call', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(is_reader, call, *args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin._safe_call', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap the given call with TLS error-trapping.', '', 'is_reader: if False EOF errors will be raised. If True, EOF errors', 'will return "" (to emulate normal sockets).', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size=-1)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.readline', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Receive message of a size from the socket.', '', 'Matches the following interface:', 'https://docs.python.org/3/library/io.html#io.IOBase.readline', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.recv', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.recv', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Receive message of a size from the socket.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.send', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.send', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Send some part of message to the socket.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.sendall', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.sendall', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Send whole message to the socket.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.ssl_retry', 0.01, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.ssl_timeout', 3, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='r', bufsize=131072)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLFileobjectStreamReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, [, ]) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamReader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['SSL file object attached to a socket object.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'SSL file object attached to a socket object.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 171, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f462014f440>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectStreamReader._abc_impl [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectStreamReader') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f462014f440> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamReader._abc_impl', <_abc._abc_data object at 0x7f462014f440>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='w', bufsize=131072)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, [, ]) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['SSL file object attached to a socket object.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'SSL file object attached to a socket object.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 175, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f460bb9cf80>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectStreamWriter._abc_impl [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectStreamWriter') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f460bb9cf80> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter._abc_impl', <_abc._abc_data object at 0x7f460bb9cf80>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.pyOpenSSLAdapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A wrapper for integrating :doc:`pyOpenSSL `.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A wrapper for integrating :doc:`pyOpenSSL `.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 274, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_environ', 'context'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7f460bb9de40>, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_password_callback', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'certificate', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'certificate_chain', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ciphers', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'context', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_context', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'private_key', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'private_key_password', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'wrap', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter._abc_impl [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, '_abc_impl') [autodoc] => <_abc._abc_data object at 0x7f460bb9de40> [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter._password_callback [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, '_password_callback') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.bind [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.certificate [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate') [autodoc] => None [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.certificate_chain [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate_chain') [autodoc] => None [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.ciphers [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'ciphers') [autodoc] => None [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.context [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'context') [autodoc] => None [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.get_context [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'get_context') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.get_environ [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.makefile [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'makefile') [autodoc] => [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.private_key [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'private_key') [autodoc] => None [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.private_key_password [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'private_key_password') [autodoc] => None [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.wrap [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'wrap') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter._abc_impl', <_abc._abc_data object at 0x7f460bb9de40>, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter._password_callback', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(password_max_length, _verify_twice, password, /)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter._password_callback', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Pass a passphrase to password protected private key.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.bind', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap and return the given socket.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["The file name of the server's TLS certificate.", '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate_chain', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate_chain', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["Optional. The file name of CA's intermediate certificate bundle.", '', 'This is needed for cheaper "chained root" TLS certificates,', 'and should be left as :py:data:`None` if not required.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.ciphers', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.ciphers', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The ciphers list of TLS.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.context', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.context', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['An instance of :py:class:`SSL.Context `.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_context', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_context', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return an ``SSL.Context`` from self attributes.', '', 'Ref: :py:class:`SSL.Context `', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return WSGI environ entries to be merged into each request.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(sock, mode='r', bufsize=-1)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return socket file object.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["The file name of the server's private key file.", '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key_password', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key_password', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Optional passphrase for password protected private key.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.wrap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.wrap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Wrap and return the given socket, plus WSGI environ entries.', '']) [autodoc] output: .. py:module:: cheroot.ssl.pyopenssl A library for integrating :doc:`pyOpenSSL ` with Cheroot. The :py:mod:`OpenSSL ` module must be importable for SSL/TLS/HTTPS functionality. You can obtain it from `here `_. To use this module, set :py:attr:`HTTPServer.ssl_adapter ` to an instance of :py:class:`ssl.Adapter `. There are two ways to use :abbr:`TLS (Transport-Level Security)`: Method One ---------- * :py:attr:`ssl_adapter.context `: an instance of :py:class:`SSL.Context `. If this is not None, it is assumed to be an :py:class:`SSL.Context ` instance, and will be passed to :py:class:`SSL.Connection ` on bind(). The developer is responsible for forming a valid :py:class:`Context ` object. This approach is to be preferred for more flexibility, e.g. if the cert and key are streams instead of files, or need decryption, or :py:data:`SSL.SSLv3_METHOD ` is desired instead of the default :py:data:`SSL.SSLv23_METHOD `, etc. Consult the :doc:`pyOpenSSL ` documentation for complete options. Method Two (shortcut) --------------------- * :py:attr:`ssl_adapter.certificate `: the file name of the server's TLS certificate. * :py:attr:`ssl_adapter.private_key `: the file name of the server's private key file. Both are :py:data:`None` by default. If :py:attr:`ssl_adapter.context ` is :py:data:`None`, but ``.private_key`` and ``.certificate`` are both given and valid, they will be read, and the context will be automatically created from them. .. spelling:: pyopenssl .. py:class:: SSLConnection(*args) :module: cheroot.ssl.pyopenssl Bases: :py:class:`object` A thread-safe wrapper for an ``SSL.Connection``. :param tuple args: the arguments to create the wrapped \ :py:class:`SSL.Connection(*args) \ ` .. py:method:: SSLConnection.accept(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.bind(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.close(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.connect(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.connect_ex(*args) :module: cheroot.ssl.pyopenssl .. py:property:: SSLConnection.family :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.fileno(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.get_app_data(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.get_cipher_list(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.get_context(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.get_peer_certificate(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.getpeername(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.getsockname(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.getsockopt(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.gettimeout(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.listen(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.makefile(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.pending(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.read(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.recv(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.renegotiate(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.send(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.sendall(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.set_accept_state(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.set_app_data(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.set_connect_state(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.setblocking(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.setsockopt(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.settimeout(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.shutdown(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.sock_shutdown(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.state_string(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.want_read(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.want_write(*args) :module: cheroot.ssl.pyopenssl .. py:method:: SSLConnection.write(*args) :module: cheroot.ssl.pyopenssl .. py:class:: SSLConnectionProxyMeta(name, bases, nmspc) :module: cheroot.ssl.pyopenssl Bases: :py:class:`object` Metaclass for generating a bunch of proxy methods. .. py:class:: SSLFileobjectMixin() :module: cheroot.ssl.pyopenssl Bases: :py:class:`object` Base mixin for a TLS socket stream. .. py:method:: SSLFileobjectMixin._safe_call(is_reader, call, *args, **kwargs) :module: cheroot.ssl.pyopenssl Wrap the given call with TLS error-trapping. is_reader: if False EOF errors will be raised. If True, EOF errors will return "" (to emulate normal sockets). .. py:method:: SSLFileobjectMixin.readline(size=-1) :module: cheroot.ssl.pyopenssl Receive message of a size from the socket. Matches the following interface: https://docs.python.org/3/library/io.html#io.IOBase.readline .. py:method:: SSLFileobjectMixin.recv(size) :module: cheroot.ssl.pyopenssl Receive message of a size from the socket. .. py:method:: SSLFileobjectMixin.send(*args, **kwargs) :module: cheroot.ssl.pyopenssl Send some part of message to the socket. .. py:method:: SSLFileobjectMixin.sendall(*args, **kwargs) :module: cheroot.ssl.pyopenssl Send whole message to the socket. .. py:attribute:: SSLFileobjectMixin.ssl_retry :module: cheroot.ssl.pyopenssl :value: 0.01 .. py:attribute:: SSLFileobjectMixin.ssl_timeout :module: cheroot.ssl.pyopenssl :value: 3 .. py:class:: SSLFileobjectStreamReader(sock, mode='r', bufsize=131072) :module: cheroot.ssl.pyopenssl Bases: :py:class:`~cheroot.ssl.pyopenssl.SSLFileobjectMixin`, :py:class:`~cheroot.makefile.StreamReader` SSL file object attached to a socket object. .. py:attribute:: SSLFileobjectStreamReader._abc_impl :module: cheroot.ssl.pyopenssl :value: <_abc._abc_data object> .. py:class:: SSLFileobjectStreamWriter(sock, mode='w', bufsize=131072) :module: cheroot.ssl.pyopenssl Bases: :py:class:`~cheroot.ssl.pyopenssl.SSLFileobjectMixin`, :py:class:`~cheroot.makefile.StreamWriter` SSL file object attached to a socket object. .. py:attribute:: SSLFileobjectStreamWriter._abc_impl :module: cheroot.ssl.pyopenssl :value: <_abc._abc_data object> .. py:class:: pyOpenSSLAdapter(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None) :module: cheroot.ssl.pyopenssl Bases: :py:class:`~cheroot.ssl.Adapter` A wrapper for integrating :doc:`pyOpenSSL `. .. py:attribute:: pyOpenSSLAdapter._abc_impl :module: cheroot.ssl.pyopenssl :value: <_abc._abc_data object> .. py:method:: pyOpenSSLAdapter._password_callback(password_max_length, _verify_twice, password, /) :module: cheroot.ssl.pyopenssl Pass a passphrase to password protected private key. .. py:method:: pyOpenSSLAdapter.bind(sock) :module: cheroot.ssl.pyopenssl Wrap and return the given socket. .. py:attribute:: pyOpenSSLAdapter.certificate :module: cheroot.ssl.pyopenssl :value: None The file name of the server's TLS certificate. .. py:attribute:: pyOpenSSLAdapter.certificate_chain :module: cheroot.ssl.pyopenssl :value: None Optional. The file name of CA's intermediate certificate bundle. This is needed for cheaper "chained root" TLS certificates, and should be left as :py:data:`None` if not required. .. py:attribute:: pyOpenSSLAdapter.ciphers :module: cheroot.ssl.pyopenssl :value: None The ciphers list of TLS. .. py:attribute:: pyOpenSSLAdapter.context :module: cheroot.ssl.pyopenssl :value: None An instance of :py:class:`SSL.Context `. .. py:method:: pyOpenSSLAdapter.get_context() :module: cheroot.ssl.pyopenssl Return an ``SSL.Context`` from self attributes. Ref: :py:class:`SSL.Context ` .. py:method:: pyOpenSSLAdapter.get_environ() :module: cheroot.ssl.pyopenssl Return WSGI environ entries to be merged into each request. .. py:method:: pyOpenSSLAdapter.makefile(sock, mode='r', bufsize=-1) :module: cheroot.ssl.pyopenssl Return socket file object. .. py:attribute:: pyOpenSSLAdapter.private_key :module: cheroot.ssl.pyopenssl :value: None The file name of the server's private key file. .. py:attribute:: pyOpenSSLAdapter.private_key_password :module: cheroot.ssl.pyopenssl :value: None Optional passphrase for password protected private key. .. py:method:: pyOpenSSLAdapter.wrap(sock) :module: cheroot.ssl.pyopenssl Wrap and return the given socket, plus WSGI environ entries. [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'property', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.ssl.pyopenssl.rst:2: section "cheroot.ssl.pyopenssl module" gets labeled as "cheroot.ssl.pyopenssl module" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:44: (INFO/1) No directive entry for “spelling” in module “docutils.parsers.rst.languages.en”. Trying “spelling” as canonical directive name. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:47: (ERROR/3) Unknown directive type “spelling”. .. spelling:: pyopenssl [filtered system message] reading sources... [ 47%] pkg/cheroot.test [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test') [app] emitting event: 'source-read'('pkg/cheroot.test', ['cheroot.test package\n====================\n\nSubmodules\n----------\n\n.. toctree::\n :maxdepth: 4\n\n cheroot.test._pytest_plugin\n cheroot.test.conftest\n cheroot.test.helper\n cheroot.test.test__compat\n cheroot.test.test_cli\n cheroot.test.test_conn\n cheroot.test.test_core\n cheroot.test.test_dispatch\n cheroot.test.test_errors\n cheroot.test.test_makefile\n cheroot.test.test_server\n cheroot.test.test_ssl\n cheroot.test.test_wsgi\n cheroot.test.webtest\n\nModule contents\n---------------\n\n.. automodule:: cheroot.test\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.rst:28: input: .. automodule:: cheroot.test :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test [autodoc] import cheroot.test => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Cheroot test suite.', '']) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/__init__.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Cheroot test suite.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__init__.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b998770>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test'], True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b998770>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test']), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] output: .. py:module:: cheroot.test Cheroot test suite. [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.rst:2: section "cheroot.test package" gets labeled as "cheroot.test package" reading sources... [ 50%] pkg/cheroot.test._pytest_plugin [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test._pytest_plugin') [app] emitting event: 'source-read'('pkg/cheroot.test._pytest_plugin', ['cheroot.test.\\_pytest\\_plugin module\n====================================\n\n.. automodule:: cheroot.test._pytest_plugin\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test._pytest_plugin.rst:4: input: .. automodule:: cheroot.test._pytest_plugin :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test._pytest_plugin [autodoc] import cheroot.test._pytest_plugin => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test._pytest_plugin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test._pytest_plugin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Local pytest plugin.', '', 'Contains hooks, which are tightly bound to the Cheroot framework', "itself, useless for end-users' app testing.", '']) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/_pytest_plugin.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', "Local pytest plugin.\n\nContains hooks, which are tightly bound to the Cheroot framework\nitself, useless for end-users' app testing.\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/_pytest_plugin.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b8cd490>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test._pytest_plugin', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test._pytest_plugin', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b8cd490>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/_pytest_plugin.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest_load_initial_conftests', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest_version', (8, 3, 5), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test._pytest_plugin import pytest_load_initial_conftests [autodoc] import cheroot.test._pytest_plugin => [autodoc] getattr(_, 'pytest_load_initial_conftests') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test._pytest_plugin.pytest_load_initial_conftests', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(early_config, parser, args)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test._pytest_plugin.pytest_load_initial_conftests', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Drop unfilterable warning ignores.', '']) [autodoc] output: .. py:module:: cheroot.test._pytest_plugin Local pytest plugin. Contains hooks, which are tightly bound to the Cheroot framework itself, useless for end-users' app testing. .. py:function:: pytest_load_initial_conftests(early_config, parser, args) :module: cheroot.test._pytest_plugin Drop unfilterable warning ignores. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test._pytest_plugin.rst:2: section "cheroot.test.\_pytest\_plugin module" gets labeled as "cheroot.test.\_pytest\_plugin module" reading sources... [ 53%] pkg/cheroot.test.conftest [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.conftest') [app] emitting event: 'source-read'('pkg/cheroot.test.conftest', ['cheroot.test.conftest module\n============================\n\n.. automodule:: cheroot.test.conftest\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.conftest.rst:4: input: .. automodule:: cheroot.test.conftest :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.conftest [autodoc] import cheroot.test.conftest => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.conftest', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.conftest', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Pytest configuration module.', '', 'Contains fixtures, which are tightly bound to the Cheroot framework', "itself, useless for end-users' app testing.", '']) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/conftest.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', "Pytest configuration module.\n\nContains fixtures, which are tightly bound to the Cheroot framework\nitself, useless for end-users' app testing.\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/conftest.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b53f470>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.conftest', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.conftest', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b53f470>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/conftest.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'get_server_client', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'http_request_timeout', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'http_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'make_http_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'native_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'native_server_client', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'native_server_thread', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_native_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_wsgi_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server_client', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server_thread', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.conftest import Gateway [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] from cheroot.test.conftest import HTTPServer [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] from cheroot.test.conftest import get_server_client [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'get_server_client') [autodoc] => [autodoc] from cheroot.test.conftest import http_request_timeout [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'http_request_timeout') [autodoc] => [autodoc] from cheroot.test.conftest import http_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'http_server') [autodoc] => [autodoc] from cheroot.test.conftest import make_http_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'make_http_server') [autodoc] => [autodoc] from cheroot.test.conftest import native_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'native_server') [autodoc] => [autodoc] from cheroot.test.conftest import native_server_client [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'native_server_client') [autodoc] => [autodoc] from cheroot.test.conftest import native_server_thread [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'native_server_thread') [autodoc] => [autodoc] from cheroot.test.conftest import thread_and_native_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'thread_and_native_server') [autodoc] => [autodoc] from cheroot.test.conftest import thread_and_wsgi_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'thread_and_wsgi_server') [autodoc] => [autodoc] from cheroot.test.conftest import wsgi_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'wsgi_server') [autodoc] => [autodoc] from cheroot.test.conftest import wsgi_server_client [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'wsgi_server_client') [autodoc] => [autodoc] from cheroot.test.conftest import wsgi_server_thread [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'wsgi_server_thread') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.http_request_timeout', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.http_request_timeout', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a common HTTP request timeout for tests with queries.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provision a server creator as a fixture.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.make_http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.make_http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create and start an HTTP server bound to ``bind_addr``.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.native_server_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(native_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.native_server_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create a test client out of given HTTP server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.native_server_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(thread_and_native_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.native_server_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up and tear down a Cheroot HTTP server instance.', '', 'This exposes the server thread.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.wsgi_server_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.wsgi_server_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create a test client out of given WSGI server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.wsgi_server_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(thread_and_wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.wsgi_server_thread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up and tear down a Cheroot WSGI server instance.', '', 'This exposes the server thread.', '']) [autodoc] output: .. py:module:: cheroot.test.conftest Pytest configuration module. Contains fixtures, which are tightly bound to the Cheroot framework itself, useless for end-users' app testing. .. py:function:: http_request_timeout() :module: cheroot.test.conftest Return a common HTTP request timeout for tests with queries. .. py:function:: http_server() :module: cheroot.test.conftest Provision a server creator as a fixture. .. py:function:: make_http_server(bind_addr) :module: cheroot.test.conftest Create and start an HTTP server bound to ``bind_addr``. .. py:function:: native_server_client(native_server) :module: cheroot.test.conftest Create a test client out of given HTTP server. .. py:function:: native_server_thread(thread_and_native_server) :module: cheroot.test.conftest Set up and tear down a Cheroot HTTP server instance. This exposes the server thread. .. py:function:: wsgi_server_client(wsgi_server) :module: cheroot.test.conftest Create a test client out of given WSGI server. .. py:function:: wsgi_server_thread(thread_and_wsgi_server) :module: cheroot.test.conftest Set up and tear down a Cheroot WSGI server instance. This exposes the server thread. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.conftest.rst:2: section "cheroot.test.conftest module" gets labeled as "cheroot.test.conftest module" reading sources... [ 56%] pkg/cheroot.test.helper [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.helper') [app] emitting event: 'source-read'('pkg/cheroot.test.helper', ['cheroot.test.helper module\n==========================\n\n.. automodule:: cheroot.test.helper\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.helper.rst:4: input: .. automodule:: cheroot.test.helper :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.helper [autodoc] import cheroot.test.helper => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.helper', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.helper', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A library of helper functions for the Cheroot test suite.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'CherootWebCase', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Controller', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Response', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/helper.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'A library of helper functions for the Cheroot test suite.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/helper.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b3d0350>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.helper', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.helper', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b3d0350>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/helper.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'config', {'bind_addr': ('127.0.0.1', 54583), 'server': 'wsgi', 'wsgi_app': None}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'datetime', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'log', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'thisdir', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'types', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'webtest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.helper import CherootWebCase [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] from cheroot.test.helper import Controller [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'Controller') [autodoc] => [autodoc] from cheroot.test.helper import Request [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'Request') [autodoc] => [autodoc] from cheroot.test.helper import Response [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'Response') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.helper.CherootWebCase', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(methodName='runTest')", None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.CherootWebCase', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.CherootWebCase', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Helper class for a web app test suite.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Helper class for a web app test suite.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 28, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_classSetupFailed', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_class_cleanups', [], False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertEqualDates', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'available_servers', {'wsgi': , 'native': }, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'date_tolerance', 2, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'scheme', 'http', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'script_name', '', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'setup_class', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'start', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'stop', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'teardown_class', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.helper import CherootWebCase._classSetupFailed [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, '_classSetupFailed') [autodoc] => False [autodoc] from cheroot.test.helper import CherootWebCase._class_cleanups [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, '_class_cleanups') [autodoc] => [] [autodoc] from cheroot.test.helper import CherootWebCase.assertEqualDates [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'assertEqualDates') [autodoc] => [autodoc] from cheroot.test.helper import CherootWebCase.available_servers [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'available_servers') [autodoc] => {'wsgi': , 'native': } [autodoc] from cheroot.test.helper import CherootWebCase.date_tolerance [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'date_tolerance') [autodoc] => 2 [autodoc] from cheroot.test.helper import CherootWebCase.scheme [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'scheme') [autodoc] => 'http' [autodoc] from cheroot.test.helper import CherootWebCase.script_name [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'script_name') [autodoc] => '' [autodoc] from cheroot.test.helper import CherootWebCase.setup_class [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'setup_class') [autodoc] => > [autodoc] from cheroot.test.helper import CherootWebCase.start [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'start') [autodoc] => > [autodoc] from cheroot.test.helper import CherootWebCase.stop [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'stop') [autodoc] => > [autodoc] from cheroot.test.helper import CherootWebCase.teardown_class [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'teardown_class') [autodoc] => > [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase._classSetupFailed', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase._class_cleanups', [], {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.assertEqualDates', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(dt1, dt2, seconds=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.assertEqualDates', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Assert ``abs(dt1 - dt2)`` is within ``Y`` seconds.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.available_servers', {'wsgi': , 'native': }, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.date_tolerance', 2, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.scheme', 'http', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.script_name', '', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.setup_class', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.setup_class', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create and run one HTTP server per class.', '']) [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.start', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.start', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Load and start the HTTP server.', '']) [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.stop', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.stop', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Terminate HTTP server.', '']) [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.teardown_class', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.teardown_class', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Cleanup HTTP server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.helper.Controller', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.Controller', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.Controller', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['WSGI app for tests.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.helper', '__firstlineno__': 138, '__doc__': 'WSGI app for tests.', '__call__': , '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'WSGI app for tests.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 138, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.helper.Request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(environ)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.Request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.Request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['HTTP request container.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.helper', '__firstlineno__': 110, '__doc__': 'HTTP request container.', '__init__': , '__static_attributes__': ('environ',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'HTTP request container.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 110, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('environ',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.helper.Response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.Response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.Response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['HTTP response container.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.helper', '__firstlineno__': 118, '__doc__': 'HTTP response container.', '__init__': , 'output': , '__static_attributes__': ('body', 'headers', 'status'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'HTTP response container.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 118, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('body', 'headers', 'status'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'output', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.helper import Response.output [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'Response') [autodoc] => [autodoc] getattr(_, 'output') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.Response.output', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.Response.output', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Generate iterable response body object.', '']) [autodoc] output: .. py:module:: cheroot.test.helper A library of helper functions for the Cheroot test suite. .. py:class:: CherootWebCase(methodName='runTest') :module: cheroot.test.helper Bases: :py:class:`~cheroot.test.webtest.WebCase` Helper class for a web app test suite. .. py:attribute:: CherootWebCase._classSetupFailed :module: cheroot.test.helper :value: False .. py:attribute:: CherootWebCase._class_cleanups :module: cheroot.test.helper :value: [] .. py:method:: CherootWebCase.assertEqualDates(dt1, dt2, seconds=None) :module: cheroot.test.helper Assert ``abs(dt1 - dt2)`` is within ``Y`` seconds. .. py:attribute:: CherootWebCase.available_servers :module: cheroot.test.helper :value: {'native': , 'wsgi': } .. py:attribute:: CherootWebCase.date_tolerance :module: cheroot.test.helper :value: 2 .. py:attribute:: CherootWebCase.scheme :module: cheroot.test.helper :value: 'http' .. py:attribute:: CherootWebCase.script_name :module: cheroot.test.helper :value: '' .. py:method:: CherootWebCase.setup_class() :module: cheroot.test.helper :classmethod: Create and run one HTTP server per class. .. py:method:: CherootWebCase.start() :module: cheroot.test.helper :classmethod: Load and start the HTTP server. .. py:method:: CherootWebCase.stop() :module: cheroot.test.helper :classmethod: Terminate HTTP server. .. py:method:: CherootWebCase.teardown_class() :module: cheroot.test.helper :classmethod: Cleanup HTTP server. .. py:class:: Controller() :module: cheroot.test.helper Bases: :py:class:`object` WSGI app for tests. .. py:class:: Request(environ) :module: cheroot.test.helper Bases: :py:class:`object` HTTP request container. .. py:class:: Response() :module: cheroot.test.helper Bases: :py:class:`object` HTTP response container. .. py:method:: Response.output() :module: cheroot.test.helper Generate iterable response body object. [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.helper.rst:2: section "cheroot.test.helper module" gets labeled as "cheroot.test.helper module" reading sources... [ 58%] pkg/cheroot.test.test__compat [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test__compat') [app] emitting event: 'source-read'('pkg/cheroot.test.test__compat', ['cheroot.test.test\\_\\_compat module\n==================================\n\n.. automodule:: cheroot.test.test__compat\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test__compat.rst:4: input: .. automodule:: cheroot.test.test__compat :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test__compat [autodoc] import cheroot.test.test__compat => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test__compat', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test__compat', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test suite for cross-python compatibility helpers.', '']) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test__compat.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Test suite for cross-python compatibility helpers.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test__compat.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b4acdd0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test__compat', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test__compat', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b4acdd0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test__compat.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'extract_bytes', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntou', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_compat_functions_negative_nonnative', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_compat_functions_positive', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_extract_bytes', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_extract_bytes_invalid', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_ntou_escape', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test__compat import bton [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'bton') [autodoc] => [autodoc] from cheroot.test.test__compat import extract_bytes [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'extract_bytes') [autodoc] => [autodoc] from cheroot.test.test__compat import ntob [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'ntob') [autodoc] => [autodoc] from cheroot.test.test__compat import ntou [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'ntou') [autodoc] => [autodoc] from cheroot.test.test__compat import test_compat_functions_negative_nonnative [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_compat_functions_negative_nonnative') [autodoc] => [autodoc] from cheroot.test.test__compat import test_compat_functions_positive [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_compat_functions_positive') [autodoc] => [autodoc] from cheroot.test.test__compat import test_extract_bytes [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_extract_bytes') [autodoc] => [autodoc] from cheroot.test.test__compat import test_extract_bytes_invalid [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_extract_bytes_invalid') [autodoc] => [autodoc] from cheroot.test.test__compat import test_ntou_escape [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_ntou_escape') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_compat_functions_negative_nonnative', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(func)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_compat_functions_negative_nonnative', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that compatibility functions fail loudly for incorrect input.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_compat_functions_positive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(func, inp, out)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_compat_functions_positive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that compatibility functions work with correct input.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_extract_bytes', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(input_argument, expected_result)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_extract_bytes', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that legitimate inputs produce bytes.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_extract_bytes_invalid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_extract_bytes_invalid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Ensure that invalid input causes exception to be raised.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_ntou_escape', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_ntou_escape', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that ``ntou`` supports escape-encoding under Python 2.', '']) [autodoc] output: .. py:module:: cheroot.test.test__compat Test suite for cross-python compatibility helpers. .. py:function:: test_compat_functions_negative_nonnative(func) :module: cheroot.test.test__compat Check that compatibility functions fail loudly for incorrect input. .. py:function:: test_compat_functions_positive(func, inp, out) :module: cheroot.test.test__compat Check that compatibility functions work with correct input. .. py:function:: test_extract_bytes(input_argument, expected_result) :module: cheroot.test.test__compat Check that legitimate inputs produce bytes. .. py:function:: test_extract_bytes_invalid() :module: cheroot.test.test__compat Ensure that invalid input causes exception to be raised. .. py:function:: test_ntou_escape() :module: cheroot.test.test__compat Check that ``ntou`` supports escape-encoding under Python 2. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test__compat.rst:2: section "cheroot.test.test\_\_compat module" gets labeled as "cheroot.test.test\_\_compat module" reading sources... [ 61%] pkg/cheroot.test.test_cli [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_cli') [app] emitting event: 'source-read'('pkg/cheroot.test.test_cli', ['cheroot.test.test\\_cli module\n=============================\n\n.. automodule:: cheroot.test.test_cli\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_cli.rst:4: input: .. automodule:: cheroot.test.test_cli :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_cli [autodoc] import cheroot.test.test_cli => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_cli', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_cli', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Tests to verify the command line interface.', '', '.. spelling::', '', ' cli', '']) [app] emitting event: 'autodoc-skip-member'('module', 'Application', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_cli.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests to verify the command line interface.\n\n.. spelling::\n\n cli\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_cli.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b4ae210>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_cli', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_cli', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b4ae210>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_cli.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'parse_wsgi_bind_addr', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_Aplication_resolve', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_wsgi_bind_addr', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_app', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_cli import Application [autodoc] import cheroot.test.test_cli => [autodoc] getattr(_, 'Application') [autodoc] => [autodoc] from cheroot.test.test_cli import parse_wsgi_bind_addr [autodoc] import cheroot.test.test_cli => [autodoc] getattr(_, 'parse_wsgi_bind_addr') [autodoc] => [autodoc] from cheroot.test.test_cli import test_Aplication_resolve [autodoc] import cheroot.test.test_cli => [autodoc] getattr(_, 'test_Aplication_resolve') [autodoc] => [autodoc] from cheroot.test.test_cli import test_parse_wsgi_bind_addr [autodoc] import cheroot.test.test_cli => [autodoc] getattr(_, 'test_parse_wsgi_bind_addr') [autodoc] => [autodoc] from cheroot.test.test_cli import wsgi_app [autodoc] import cheroot.test.test_cli => [autodoc] getattr(_, 'wsgi_app') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_cli.test_Aplication_resolve', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(app_name, app_method, wsgi_app)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_cli.test_Aplication_resolve', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check the wsgi application name conversion.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_cli.test_parse_wsgi_bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(raw_bind_addr, expected_bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_cli.test_parse_wsgi_bind_addr', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check the parsing of the --bind option.', '', 'Verify some of the supported addresses and the expected return value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_cli.wsgi_app', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_cli.wsgi_app', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a WSGI app stub.', '']) [autodoc] output: .. py:module:: cheroot.test.test_cli Tests to verify the command line interface. .. spelling:: cli .. py:function:: test_Aplication_resolve(app_name, app_method, wsgi_app) :module: cheroot.test.test_cli Check the wsgi application name conversion. .. py:function:: test_parse_wsgi_bind_addr(raw_bind_addr, expected_bind_addr) :module: cheroot.test.test_cli Check the parsing of the --bind option. Verify some of the supported addresses and the expected return value. .. py:function:: wsgi_app(monkeypatch) :module: cheroot.test.test_cli Return a WSGI app stub. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_cli.rst:2: section "cheroot.test.test\_cli module" gets labeled as "cheroot.test.test\_cli module" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_cli.py:docstring of cheroot.test.test_cli:1: (INFO/1) No directive entry for “spelling” in module “docutils.parsers.rst.languages.en”. Trying “spelling” as canonical directive name. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_cli.py:docstring of cheroot.test.test_cli:3: (ERROR/3) Unknown directive type “spelling”. .. spelling:: cli [filtered system message] reading sources... [ 64%] pkg/cheroot.test.test_conn [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_conn') [app] emitting event: 'source-read'('pkg/cheroot.test.test_conn', ['cheroot.test.test\\_conn module\n==============================\n\n.. automodule:: cheroot.test.test_conn\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_conn.rst:4: input: .. automodule:: cheroot.test.test_conn :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_conn [autodoc] import cheroot.test.test_conn => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Tests for TCP connection handling, including proper and timely close.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'Controller', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ErrorLogMonitor', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'FaultyGetMap', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'FaultySelect', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_CI', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYPY', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SLOW_ENV', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WSGICallables', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_conn.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for TCP connection handling, including proper and timely close.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b4af230>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_conn', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_conn', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b4af230>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_matches_pattern', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_suppress_exceptions', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'header_exists', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'header_has_value', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'helper', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'namedtuple', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pov', 'pPeErRsSiIsStTeEnNcCeE oOfF vViIsSiIoOnN', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'raw_testing_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_100_Continue', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_598', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_Chunked_Encoding', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_Content_Length_in', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_Content_Length_not_int', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_Content_Length_out', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_Timeout', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_Timeout_after_request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_persistent_connections', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_pipelining', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_No_CRLF', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_No_Message_Body', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_broken_connection_during_http_communication_fallback', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_broken_connection_during_tcp_fin', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_client', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_invalid_selected_connection', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_kb_int_from_http_handler', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_keepalive', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_keepalive_conn_management', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_readall_or_close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_remains_alive_post_unhandled_exception', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_streaming_10', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_streaming_11', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_unhandled_exception_in_request_handler', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'timeout', 1, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'traceback_', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'trim', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'unwrap', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'webtest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_conn import Controller [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'Controller') [autodoc] => [autodoc] from cheroot.test.test_conn import ErrorLogMonitor [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] from cheroot.test.test_conn import FaultyGetMap [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'FaultyGetMap') [autodoc] => [autodoc] from cheroot.test.test_conn import FaultySelect [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'FaultySelect') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] from cheroot.test.test_conn import _matches_pattern [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, '_matches_pattern') [autodoc] => [autodoc] from cheroot.test.test_conn import _suppress_exceptions [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, '_suppress_exceptions') [autodoc] => [autodoc] from cheroot.test.test_conn import header_exists [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'header_exists') [autodoc] => [autodoc] from cheroot.test.test_conn import header_has_value [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'header_has_value') [autodoc] => [autodoc] from cheroot.test.test_conn import namedtuple [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'namedtuple') [autodoc] => [autodoc] from cheroot.test.test_conn import raw_testing_server [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'raw_testing_server') [autodoc] => [autodoc] from cheroot.test.test_conn import test_100_Continue [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_100_Continue') [autodoc] => [autodoc] from cheroot.test.test_conn import test_598 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_598') [autodoc] => [autodoc] from cheroot.test.test_conn import test_Chunked_Encoding [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_Chunked_Encoding') [autodoc] => [autodoc] from cheroot.test.test_conn import test_Content_Length_in [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_Content_Length_in') [autodoc] => [autodoc] from cheroot.test.test_conn import test_Content_Length_not_int [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_Content_Length_not_int') [autodoc] => [autodoc] from cheroot.test.test_conn import test_Content_Length_out [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_Content_Length_out') [autodoc] => [autodoc] from cheroot.test.test_conn import test_HTTP11_Timeout [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_HTTP11_Timeout') [autodoc] => [autodoc] from cheroot.test.test_conn import test_HTTP11_Timeout_after_request [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_HTTP11_Timeout_after_request') [autodoc] => [autodoc] from cheroot.test.test_conn import test_HTTP11_persistent_connections [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_HTTP11_persistent_connections') [autodoc] => [autodoc] from cheroot.test.test_conn import test_HTTP11_pipelining [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_HTTP11_pipelining') [autodoc] => [autodoc] from cheroot.test.test_conn import test_No_CRLF [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_No_CRLF') [autodoc] => [autodoc] from cheroot.test.test_conn import test_No_Message_Body [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_No_Message_Body') [autodoc] => [autodoc] from cheroot.test.test_conn import test_broken_connection_during_http_communication_fallback [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_broken_connection_during_http_communication_fallback') [autodoc] => [autodoc] from cheroot.test.test_conn import test_broken_connection_during_tcp_fin [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_broken_connection_during_tcp_fin') [autodoc] => [autodoc] from cheroot.test.test_conn import test_client [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_client') [autodoc] => [autodoc] from cheroot.test.test_conn import test_invalid_selected_connection [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_invalid_selected_connection') [autodoc] => [autodoc] from cheroot.test.test_conn import test_kb_int_from_http_handler [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_kb_int_from_http_handler') [autodoc] => [autodoc] from cheroot.test.test_conn import test_keepalive [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_keepalive') [autodoc] => [autodoc] from cheroot.test.test_conn import test_keepalive_conn_management [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_keepalive_conn_management') [autodoc] => [autodoc] from cheroot.test.test_conn import test_readall_or_close [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_readall_or_close') [autodoc] => [autodoc] from cheroot.test.test_conn import test_remains_alive_post_unhandled_exception [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_remains_alive_post_unhandled_exception') [autodoc] => [autodoc] from cheroot.test.test_conn import test_streaming_10 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_streaming_10') [autodoc] => [autodoc] from cheroot.test.test_conn import test_streaming_11 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_streaming_11') [autodoc] => [autodoc] from cheroot.test.test_conn import test_unhandled_exception_in_request_handler [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_unhandled_exception_in_request_handler') [autodoc] => [autodoc] from cheroot.test.test_conn import testing_server [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'testing_server') [autodoc] => [autodoc] from cheroot.test.test_conn import trim [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'trim') [autodoc] => [autodoc] from cheroot.test.test_conn import unwrap [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'unwrap') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.Controller', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.Controller', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.Controller', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Controller for serving WSGI apps.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for serving WSGI apps.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 110, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'handlers', {'/hello': , '/pov': , '/page1': , '/page2': , '/page3': , '/stream': , '/upload': , '/custom/204': , '/custom/304': , '/err_before_read': , '/one_megabyte_of_a': , '/wrong_cl_buffered': , '/wrong_cl_unbuffered': }, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_conn import Controller.handlers [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'Controller') [autodoc] => [autodoc] getattr(_, 'handlers') [autodoc] => {'/hello': , '/pov': , '/page1': , '/page2': , '/page3': , '/stream': , '/upload': , '/custom/204': , '/custom/304': , '/err_before_read': , '/one_megabyte_of_a': , '/wrong_cl_buffered': , '/wrong_cl_unbuffered': } [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.Controller.handlers', {'/hello': , '/pov': , '/page1': , '/page2': , '/page3': , '/stream': , '/upload': , '/custom/204': , '/custom/304': , '/err_before_read': , '/one_megabyte_of_a': , '/wrong_cl_buffered': , '/wrong_cl_unbuffered': }, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.ErrorLogMonitor', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.ErrorLogMonitor', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.ErrorLogMonitor', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Mock class to access the server error_log calls made by the server.', '']) [app] emitting event: 'autodoc-skip-member'('class', 'ErrorLogCall', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_conn', '__firstlineno__': 130, '__doc__': 'Mock class to access the server error_log calls made by the server.', 'ErrorLogCall': , '__init__': , '__call__': , '__static_attributes__': ('calls', 'ignored_msgs'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Mock class to access the server error_log calls made by the server.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 130, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('calls', 'ignored_msgs'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(msg, level, traceback)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'ErrorLogCall(msg, level, traceback)', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__getnewargs__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__match_args__', ('msg', 'level', 'traceback'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__new__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__replace__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__repr__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__slots__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_asdict', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_field_defaults', {}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_fields', ('msg', 'level', 'traceback'), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_make', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_replace', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'level', _tuplegetter(1, 'Alias for field number 1'), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'msg', _tuplegetter(0, 'Alias for field number 0'), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'traceback', _tuplegetter(2, 'Alias for field number 2'), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall._asdict [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, '_asdict') [autodoc] => [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall._field_defaults [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, '_field_defaults') [autodoc] => {} [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall._fields [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, '_fields') [autodoc] => ('msg', 'level', 'traceback') [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall._make [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, '_make') [autodoc] => > [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall._replace [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, '_replace') [autodoc] => [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall.level [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, 'level') [autodoc] => _tuplegetter(1, 'Alias for field number 1') [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall.msg [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, 'msg') [autodoc] => _tuplegetter(0, 'Alias for field number 0') [autodoc] from cheroot.test.test_conn import ErrorLogMonitor.ErrorLogCall.traceback [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [autodoc] getattr(_, 'ErrorLogCall') [autodoc] => [autodoc] getattr(_, 'traceback') [autodoc] => _tuplegetter(2, 'Alias for field number 2') [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._asdict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._asdict', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a new dict which maps field names to their values.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._field_defaults', {}, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._fields', ('msg', 'level', 'traceback'), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._make', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(iterable)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._make', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Make a new ErrorLogCall object from a sequence or iterable', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._replace', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(**kwds)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._replace', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a new ErrorLogCall object replacing specified fields with new values', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.level', _tuplegetter(1, 'Alias for field number 1'), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.level', _tuplegetter(1, 'Alias for field number 1'), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Alias for field number 1', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.msg', _tuplegetter(0, 'Alias for field number 0'), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.msg', _tuplegetter(0, 'Alias for field number 0'), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Alias for field number 0', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.traceback', _tuplegetter(2, 'Alias for field number 2'), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.traceback', _tuplegetter(2, 'Alias for field number 2'), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Alias for field number 2', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.FaultyGetMap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(original_get_map)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.FaultyGetMap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.FaultyGetMap', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Mock class to insert errors in the selector.get_map method.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_conn', '__firstlineno__': 1572, '__doc__': 'Mock class to insert errors in the selector.get_map method.', '__init__': , '__call__': , '__static_attributes__': ('conn_closed', 'original_get_map', 'sabotage_conn'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Mock class to insert errors in the selector.get_map method.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1572, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('conn_closed', 'original_get_map', 'sabotage_conn'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.FaultySelect', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(original_select)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.FaultySelect', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.FaultySelect', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Mock class to insert errors in the selector.select method.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_conn', '__firstlineno__': 1554, '__doc__': 'Mock class to insert errors in the selector.select method.', '__init__': , '__call__': , '__static_attributes__': ('original_select', 'os_error_triggered', 'request_served'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Mock class to insert errors in the selector.select method.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1554, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('original_select', 'os_error_triggered', 'request_served'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.WSGICallables', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.WSGICallables', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.WSGICallables', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Standalone WSGI apps.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_conn', '__firstlineno__': 30, '__doc__': 'Standalone WSGI apps.', 'hello': )>, 'pov': )>, 'stream': )>, 'upload': )>, 'custom_204': )>, 'custom_304': )>, 'err_before_read': )>, 'one_megabyte_of_a': )>, 'wrong_cl_buffered': )>, 'wrong_cl_unbuffered': )>, '_munge': )>, '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Standalone WSGI apps.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 30, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_munge', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'custom_204', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'custom_304', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'err_before_read', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'hello', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'one_megabyte_of_a', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'pov', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'stream', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'upload', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'wrong_cl_buffered', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'wrong_cl_unbuffered', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_conn import WSGICallables._munge [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, '_munge') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.custom_204 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'custom_204') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.custom_304 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'custom_304') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.err_before_read [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'err_before_read') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.hello [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'hello') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.one_megabyte_of_a [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'one_megabyte_of_a') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.pov [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'pov') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.stream [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'stream') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.upload [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'upload') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.wrong_cl_buffered [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'wrong_cl_buffered') [autodoc] => [autodoc] from cheroot.test.test_conn import WSGICallables.wrong_cl_unbuffered [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'wrong_cl_unbuffered') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables._munge', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(string)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables._munge', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Encode PATH_INFO correctly depending on Python version.', '', 'WSGI 1.0 is a mess around Unicode. Create endpoints', 'that match the PATH_INFO that it produces.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.custom_204', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.custom_204', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render response with status 204.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.custom_304', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.custom_304', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render response with status 304.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.err_before_read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.err_before_read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render response with status 500.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.hello', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.hello', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render Hello world.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.one_megabyte_of_a', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.one_megabyte_of_a', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render 1MB response.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.pov', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.pov', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render ``pov`` value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.stream', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.stream', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render streaming response.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.upload', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.upload', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Process file upload and render thank.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.wrong_cl_buffered', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.wrong_cl_buffered', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render buffered response with invalid length value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.wrong_cl_unbuffered', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.wrong_cl_unbuffered', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render unbuffered response with invalid length value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.header_exists', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(header_name, headers)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.header_exists', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that a header is present.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.header_has_value', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(header_name, header_value, headers)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.header_has_value', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that a header with a given value is present.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.raw_testing_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.raw_testing_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Attach a WSGI app to the given server and preconfigure it.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_100_Continue', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_100_Continue', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test 100-continue header processing.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_598', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_598', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test serving large file with a read timeout in place.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_Chunked_Encoding', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_Chunked_Encoding', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test HTTP uploads with chunked transfer-encoding.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_Content_Length_in', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_Content_Length_in', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Try a non-chunked request where Content-Length exceeds limit.', '', '(server.max_request_body_size).', 'Assert error before body send.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_Content_Length_not_int', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_Content_Length_not_int', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test that malicious Content-Length header returns 400.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_Content_Length_out', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, uri, expected_resp_status, expected_resp_body)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_Content_Length_out', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test response with Content-Length less than the response body.', '', '(non-chunked response)', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_HTTP11_Timeout', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, timeout_before_headers)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_Timeout', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check timeout without sending any data.', '', 'The server will close the connection with a 408.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_HTTP11_Timeout_after_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_Timeout_after_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check timeout after at least one request has succeeded.', '', 'The server should close the connection without 408.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_HTTP11_persistent_connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_persistent_connections', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test persistent HTTP/1.1 connections.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_HTTP11_pipelining', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_pipelining', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test HTTP/1.1 pipelining.', '', ":py:mod:`http.client` doesn't support this directly.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_No_CRLF', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, invalid_terminator)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_No_CRLF', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test HTTP queries with no valid CRLF terminators.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_No_Message_Body', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_No_Message_Body', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test HTTP queries with an empty response body.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_broken_connection_during_http_communication_fallback', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(monkeypatch, test_client, testing_server, wsgi_server_thread)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_broken_connection_during_http_communication_fallback', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test that unhandled internal error cascades into shutdown.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_broken_connection_during_tcp_fin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(error_number, exception_leaks, mocker, monkeypatch, simulated_exception, test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_broken_connection_during_tcp_fin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["Test there's no traceback on broken connection during close.", '', 'It artificially causes :py:data:`~errno.ECONNRESET` /', ':py:data:`~errno.EPIPE` / :py:data:`~errno.ESHUTDOWN` /', ':py:data:`~errno.ENOTCONN` as well as unrelated :py:exc:`RuntimeError`', 'and :py:exc:`socket.error(-1) ` on the server socket when', ":py:meth:`socket.shutdown() ` is called. It's", 'triggered by closing the client socket before the server had a chance', 'to respond.', '', 'The expectation is that only :py:exc:`RuntimeError` and a', ':py:exc:`socket.error` with an unusual error code would leak.', '', 'With the :py:data:`None`-parameter, a real non-simulated', ":py:exc:`OSError(107, 'Transport endpoint is not connected')", '` happens.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(testing_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Get and return a test client out of the given server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_invalid_selected_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_invalid_selected_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test the error handling segment of HTTP connection selection.', '', 'See :py:meth:`cheroot.connections.ConnectionManager.get_conn`.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_kb_int_from_http_handler', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, testing_server, wsgi_server_thread)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_kb_int_from_http_handler', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test that a keyboard interrupt from HTTP handler causes shutdown.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_keepalive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, http_server_protocol)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_keepalive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test Keep-Alive enabled connections.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_keepalive_conn_management', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_keepalive_conn_management', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test management of Keep-Alive connections.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_readall_or_close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, max_request_body_size)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_readall_or_close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test a max_request_body_size of 0 (the default) and 1001.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_remains_alive_post_unhandled_exception', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(mocker, monkeypatch, test_client, testing_server, wsgi_server_thread)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_remains_alive_post_unhandled_exception', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Ensure worker threads are resilient to unhandled exceptions.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_streaming_10', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, set_cl)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_streaming_10', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test serving of streaming responses with HTTP/1.0 protocol.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_streaming_11', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, set_cl)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_streaming_11', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test serving of streaming responses with HTTP/1.1 protocol.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_unhandled_exception_in_request_handler', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(mocker, monkeypatch, test_client, testing_server, wsgi_server_thread)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_unhandled_exception_in_request_handler', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Ensure worker threads are resilient to in-handler exceptions.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.testing_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(raw_testing_server, monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.testing_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Modify the "raw" base server to monitor the error_log messages.', '', 'If you need to ignore a particular error message use the property', '``testing_server.error_log.ignored_msgs`` by appending to the list', 'the expected error messages.', '']) [autodoc] output: .. py:module:: cheroot.test.test_conn Tests for TCP connection handling, including proper and timely close. .. py:class:: Controller() :module: cheroot.test.test_conn Bases: :py:class:`~cheroot.test.helper.Controller` Controller for serving WSGI apps. .. py:attribute:: Controller.handlers :module: cheroot.test.test_conn :value: {'/custom/204': , '/custom/304': , '/err_before_read': , '/hello': , '/one_megabyte_of_a': , '/page1': , '/page2': , '/page3': , '/pov': , '/stream': , '/upload': , '/wrong_cl_buffered': , '/wrong_cl_unbuffered': } .. py:class:: ErrorLogMonitor() :module: cheroot.test.test_conn Bases: :py:class:`object` Mock class to access the server error_log calls made by the server. .. py:class:: ErrorLogMonitor.ErrorLogCall(msg, level, traceback) :module: cheroot.test.test_conn :canonical: cheroot.test.test_conn.ErrorLogCall Bases: :py:class:`tuple` .. py:method:: ErrorLogMonitor.ErrorLogCall._asdict() :module: cheroot.test.test_conn Return a new dict which maps field names to their values. .. py:attribute:: ErrorLogMonitor.ErrorLogCall._field_defaults :module: cheroot.test.test_conn :value: {} .. py:attribute:: ErrorLogMonitor.ErrorLogCall._fields :module: cheroot.test.test_conn :value: ('msg', 'level', 'traceback') .. py:method:: ErrorLogMonitor.ErrorLogCall._make(iterable) :module: cheroot.test.test_conn :classmethod: Make a new ErrorLogCall object from a sequence or iterable .. py:method:: ErrorLogMonitor.ErrorLogCall._replace(**kwds) :module: cheroot.test.test_conn Return a new ErrorLogCall object replacing specified fields with new values .. py:attribute:: ErrorLogMonitor.ErrorLogCall.level :module: cheroot.test.test_conn Alias for field number 1 .. py:attribute:: ErrorLogMonitor.ErrorLogCall.msg :module: cheroot.test.test_conn Alias for field number 0 .. py:attribute:: ErrorLogMonitor.ErrorLogCall.traceback :module: cheroot.test.test_conn Alias for field number 2 .. py:class:: FaultyGetMap(original_get_map) :module: cheroot.test.test_conn Bases: :py:class:`object` Mock class to insert errors in the selector.get_map method. .. py:class:: FaultySelect(original_select) :module: cheroot.test.test_conn Bases: :py:class:`object` Mock class to insert errors in the selector.select method. .. py:class:: WSGICallables() :module: cheroot.test.test_conn Bases: :py:class:`object` Standalone WSGI apps. .. py:method:: WSGICallables._munge(string) :module: cheroot.test.test_conn :staticmethod: Encode PATH_INFO correctly depending on Python version. WSGI 1.0 is a mess around Unicode. Create endpoints that match the PATH_INFO that it produces. .. py:method:: WSGICallables.custom_204(req, resp) :module: cheroot.test.test_conn :staticmethod: Render response with status 204. .. py:method:: WSGICallables.custom_304(req, resp) :module: cheroot.test.test_conn :staticmethod: Render response with status 304. .. py:method:: WSGICallables.err_before_read(req, resp) :module: cheroot.test.test_conn :staticmethod: Render response with status 500. .. py:method:: WSGICallables.hello(req, resp) :module: cheroot.test.test_conn :staticmethod: Render Hello world. .. py:method:: WSGICallables.one_megabyte_of_a(req, resp) :module: cheroot.test.test_conn :staticmethod: Render 1MB response. .. py:method:: WSGICallables.pov(req, resp) :module: cheroot.test.test_conn :staticmethod: Render ``pov`` value. .. py:method:: WSGICallables.stream(req, resp) :module: cheroot.test.test_conn :staticmethod: Render streaming response. .. py:method:: WSGICallables.upload(req, resp) :module: cheroot.test.test_conn :staticmethod: Process file upload and render thank. .. py:method:: WSGICallables.wrong_cl_buffered(req, resp) :module: cheroot.test.test_conn :staticmethod: Render buffered response with invalid length value. .. py:method:: WSGICallables.wrong_cl_unbuffered(req, resp) :module: cheroot.test.test_conn :staticmethod: Render unbuffered response with invalid length value. .. py:function:: header_exists(header_name, headers) :module: cheroot.test.test_conn Check that a header is present. .. py:function:: header_has_value(header_name, header_value, headers) :module: cheroot.test.test_conn Check that a header with a given value is present. .. py:function:: raw_testing_server(wsgi_server_client) :module: cheroot.test.test_conn Attach a WSGI app to the given server and preconfigure it. .. py:function:: test_100_Continue(test_client) :module: cheroot.test.test_conn Test 100-continue header processing. .. py:function:: test_598(test_client) :module: cheroot.test.test_conn Test serving large file with a read timeout in place. .. py:function:: test_Chunked_Encoding(test_client) :module: cheroot.test.test_conn Test HTTP uploads with chunked transfer-encoding. .. py:function:: test_Content_Length_in(test_client) :module: cheroot.test.test_conn Try a non-chunked request where Content-Length exceeds limit. (server.max_request_body_size). Assert error before body send. .. py:function:: test_Content_Length_not_int(test_client) :module: cheroot.test.test_conn Test that malicious Content-Length header returns 400. .. py:function:: test_Content_Length_out(test_client, uri, expected_resp_status, expected_resp_body) :module: cheroot.test.test_conn Test response with Content-Length less than the response body. (non-chunked response) .. py:function:: test_HTTP11_Timeout(test_client, timeout_before_headers) :module: cheroot.test.test_conn Check timeout without sending any data. The server will close the connection with a 408. .. py:function:: test_HTTP11_Timeout_after_request(test_client) :module: cheroot.test.test_conn Check timeout after at least one request has succeeded. The server should close the connection without 408. .. py:function:: test_HTTP11_persistent_connections(test_client) :module: cheroot.test.test_conn Test persistent HTTP/1.1 connections. .. py:function:: test_HTTP11_pipelining(test_client) :module: cheroot.test.test_conn Test HTTP/1.1 pipelining. :py:mod:`http.client` doesn't support this directly. .. py:function:: test_No_CRLF(test_client, invalid_terminator) :module: cheroot.test.test_conn Test HTTP queries with no valid CRLF terminators. .. py:function:: test_No_Message_Body(test_client) :module: cheroot.test.test_conn Test HTTP queries with an empty response body. .. py:function:: test_broken_connection_during_http_communication_fallback(monkeypatch, test_client, testing_server, wsgi_server_thread) :module: cheroot.test.test_conn Test that unhandled internal error cascades into shutdown. .. py:function:: test_broken_connection_during_tcp_fin(error_number, exception_leaks, mocker, monkeypatch, simulated_exception, test_client) :module: cheroot.test.test_conn Test there's no traceback on broken connection during close. It artificially causes :py:data:`~errno.ECONNRESET` / :py:data:`~errno.EPIPE` / :py:data:`~errno.ESHUTDOWN` / :py:data:`~errno.ENOTCONN` as well as unrelated :py:exc:`RuntimeError` and :py:exc:`socket.error(-1) ` on the server socket when :py:meth:`socket.shutdown() ` is called. It's triggered by closing the client socket before the server had a chance to respond. The expectation is that only :py:exc:`RuntimeError` and a :py:exc:`socket.error` with an unusual error code would leak. With the :py:data:`None`-parameter, a real non-simulated :py:exc:`OSError(107, 'Transport endpoint is not connected') ` happens. .. py:function:: test_client(testing_server) :module: cheroot.test.test_conn Get and return a test client out of the given server. .. py:function:: test_invalid_selected_connection(test_client, monkeypatch) :module: cheroot.test.test_conn Test the error handling segment of HTTP connection selection. See :py:meth:`cheroot.connections.ConnectionManager.get_conn`. .. py:function:: test_kb_int_from_http_handler(test_client, testing_server, wsgi_server_thread) :module: cheroot.test.test_conn Test that a keyboard interrupt from HTTP handler causes shutdown. .. py:function:: test_keepalive(test_client, http_server_protocol) :module: cheroot.test.test_conn Test Keep-Alive enabled connections. .. py:function:: test_keepalive_conn_management(test_client) :module: cheroot.test.test_conn Test management of Keep-Alive connections. .. py:function:: test_readall_or_close(test_client, max_request_body_size) :module: cheroot.test.test_conn Test a max_request_body_size of 0 (the default) and 1001. .. py:function:: test_remains_alive_post_unhandled_exception(mocker, monkeypatch, test_client, testing_server, wsgi_server_thread) :module: cheroot.test.test_conn Ensure worker threads are resilient to unhandled exceptions. .. py:function:: test_streaming_10(test_client, set_cl) :module: cheroot.test.test_conn Test serving of streaming responses with HTTP/1.0 protocol. .. py:function:: test_streaming_11(test_client, set_cl) :module: cheroot.test.test_conn Test serving of streaming responses with HTTP/1.1 protocol. .. py:function:: test_unhandled_exception_in_request_handler(mocker, monkeypatch, test_client, testing_server, wsgi_server_thread) :module: cheroot.test.test_conn Ensure worker threads are resilient to in-handler exceptions. .. py:function:: testing_server(raw_testing_server, monkeypatch) :module: cheroot.test.test_conn Modify the "raw" base server to monitor the error_log messages. If you need to ignore a particular error message use the property ``testing_server.error_log.ignored_msgs`` by appending to the list the expected error messages. [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_conn.rst:2: section "cheroot.test.test\_conn module" gets labeled as "cheroot.test.test\_conn module" reading sources... [ 67%] pkg/cheroot.test.test_core [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_core') [app] emitting event: 'source-read'('pkg/cheroot.test.test_core', ['cheroot.test.test\\_core module\n==============================\n\n.. automodule:: cheroot.test.test_core\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_core.rst:4: input: .. automodule:: cheroot.test.test_core :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_core [autodoc] import cheroot.test.test_core => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_core', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_core', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Tests for managing HTTP issues (malformed requests, etc).', '']) [app] emitting event: 'autodoc-skip-member'('module', 'CloseController', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'CloseResponse', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_BAD_REQUEST', 400, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_LENGTH_REQUIRED', 411, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_NOT_FOUND', 404, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_OK', 200, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_REQUEST_ENTITY_TOO_LARGE', 413, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_VERSION_NOT_SUPPORTED', 505, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HelloController', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WSGICallables', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_core.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for managing HTTP issues (malformed requests, etc).', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_core.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b0d8650>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_core', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_core', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b0d8650>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_core.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_get_http_response', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_munge', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'helper', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_client', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_client_with_defaults', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_content_length_required', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_garbage_in', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_http_connect_request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_large_request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_malformed_header', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_malformed_http_method', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_malformed_request_line', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_no_content_length', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_normal_request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_acceptable_uri', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_no_leading_slash_invalid', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_absolute_uri', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_asterisk_uri', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_fragment_uri', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_invalid_uri', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_unsafe_uri', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_query_string_request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_request_line_split_issue_1220', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_send_header_before_closing', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server_close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server_with_defaults', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_core import CloseController [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'CloseController') [autodoc] => [autodoc] from cheroot.test.test_core import CloseResponse [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'CloseResponse') [autodoc] => [autodoc] from cheroot.test.test_core import HelloController [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'HelloController') [autodoc] => [autodoc] from cheroot.test.test_core import WSGICallables [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] from cheroot.test.test_core import _get_http_response [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, '_get_http_response') [autodoc] => [autodoc] from cheroot.test.test_core import _munge [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, '_munge') [autodoc] => [autodoc] from cheroot.test.test_core import test_client [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_client') [autodoc] => [autodoc] from cheroot.test.test_core import test_client_with_defaults [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_client_with_defaults') [autodoc] => [autodoc] from cheroot.test.test_core import test_content_length_required [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_content_length_required') [autodoc] => [autodoc] from cheroot.test.test_core import test_garbage_in [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_garbage_in') [autodoc] => [autodoc] from cheroot.test.test_core import test_http_connect_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_http_connect_request') [autodoc] => [autodoc] from cheroot.test.test_core import test_large_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_large_request') [autodoc] => [autodoc] from cheroot.test.test_core import test_malformed_header [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_malformed_header') [autodoc] => [autodoc] from cheroot.test.test_core import test_malformed_http_method [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_malformed_http_method') [autodoc] => [autodoc] from cheroot.test.test_core import test_malformed_request_line [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_malformed_request_line') [autodoc] => [autodoc] from cheroot.test.test_core import test_no_content_length [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_no_content_length') [autodoc] => [autodoc] from cheroot.test.test_core import test_normal_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_normal_request') [autodoc] => [autodoc] from cheroot.test.test_core import test_parse_acceptable_uri [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_acceptable_uri') [autodoc] => [autodoc] from cheroot.test.test_core import test_parse_no_leading_slash_invalid [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_no_leading_slash_invalid') [autodoc] => [autodoc] from cheroot.test.test_core import test_parse_uri_absolute_uri [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_uri_absolute_uri') [autodoc] => [autodoc] from cheroot.test.test_core import test_parse_uri_asterisk_uri [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_uri_asterisk_uri') [autodoc] => [autodoc] from cheroot.test.test_core import test_parse_uri_fragment_uri [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_uri_fragment_uri') [autodoc] => [autodoc] from cheroot.test.test_core import test_parse_uri_invalid_uri [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_uri_invalid_uri') [autodoc] => [autodoc] from cheroot.test.test_core import test_parse_uri_unsafe_uri [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_uri_unsafe_uri') [autodoc] => [autodoc] from cheroot.test.test_core import test_query_string_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_query_string_request') [autodoc] => [autodoc] from cheroot.test.test_core import test_request_line_split_issue_1220 [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_request_line_split_issue_1220') [autodoc] => [autodoc] from cheroot.test.test_core import test_send_header_before_closing [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_send_header_before_closing') [autodoc] => [autodoc] from cheroot.test.test_core import testing_server [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'testing_server') [autodoc] => [autodoc] from cheroot.test.test_core import testing_server_close [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'testing_server_close') [autodoc] => [autodoc] from cheroot.test.test_core import testing_server_with_defaults [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'testing_server_with_defaults') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.CloseController', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.CloseController', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.CloseController', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Controller for testing the close callback.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_core', '__firstlineno__': 423, '__doc__': 'Controller for testing the close callback.', '__call__': , 'close': , '__static_attributes__': ('req',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for testing the close callback.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 423, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('req',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_core import CloseController.close [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'CloseController') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.CloseController.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.CloseController.close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Close, writing hello.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.CloseResponse', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(close)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.CloseResponse', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.CloseResponse', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Dummy empty response to trigger the no body status.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_core', '__firstlineno__': 438, '__doc__': 'Dummy empty response to trigger the no body status.', '__init__': , '__getitem__': , 'output': , '__static_attributes__': ('close', 'headers', 'status'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Dummy empty response to trigger the no body status.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 438, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__getitem__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('close', 'headers', 'status'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'output', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_core import CloseResponse.output [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'CloseResponse') [autodoc] => [autodoc] getattr(_, 'output') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.CloseResponse.output', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.CloseResponse.output', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return self to hook the close method.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.HelloController', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.HelloController', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.HelloController', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Controller for serving WSGI apps.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for serving WSGI apps.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 58, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'handlers', {'/hello': , '/no_body': , '/body_required': , '/query_string': , '/пÑ\x80ивÑ\x96Ñ\x82': , '/ЮÑ\x85Ñ\x85Ñ\x83Ñ\x83Ñ\x83': , '/\xa0Ðblah key 0 900 4 data': , '/*': }, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_core import HelloController.handlers [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'HelloController') [autodoc] => [autodoc] getattr(_, 'handlers') [autodoc] => {'/hello': , '/no_body': , '/body_required': , '/query_string': , '/пÑ\x80ивÑ\x96Ñ\x82': , '/ЮÑ\x85Ñ\x85Ñ\x83Ñ\x83Ñ\x83': , '/\xa0Ðblah key 0 900 4 data': , '/*': } [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_core.HelloController.handlers', {'/hello': , '/no_body': , '/body_required': , '/query_string': , '/пÑ\x80ивÑ\x96Ñ\x82': , '/ЮÑ\x85Ñ\x85Ñ\x83Ñ\x83Ñ\x83': , '/\xa0Ðblah key 0 900 4 data': , '/*': }, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.WSGICallables', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.WSGICallables', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.WSGICallables', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Controller for serving WSGI apps.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_core', '__firstlineno__': 29, '__doc__': 'Controller for serving WSGI apps.', 'hello': )>, 'body_required': )>, 'query_string': )>, 'asterisk': )>, '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for serving WSGI apps.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 29, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'asterisk', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'body_required', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'hello', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'query_string', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_core import WSGICallables.asterisk [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'asterisk') [autodoc] => [autodoc] from cheroot.test.test_core import WSGICallables.body_required [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'body_required') [autodoc] => [autodoc] from cheroot.test.test_core import WSGICallables.hello [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'hello') [autodoc] => [autodoc] from cheroot.test.test_core import WSGICallables.query_string [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'query_string') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.WSGICallables.asterisk', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.asterisk', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render request method value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.WSGICallables.body_required', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.body_required', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render Hello world or set 411.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.WSGICallables.hello', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.hello', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render Hello world.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.WSGICallables.query_string', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.query_string', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Render QUERY_STRING value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core._get_http_response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(connection, method='GET')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core._get_http_response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core._munge', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(string)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core._munge', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Encode PATH_INFO correctly depending on Python version.', '', 'WSGI 1.0 is a mess around Unicode. Create endpoints', 'that match the PATH_INFO that it produces.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(testing_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Get and return a test client out of the given server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_client_with_defaults', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(testing_server_with_defaults)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_client_with_defaults', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Get and return a test client out of the given server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_content_length_required', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_content_length_required', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test POST query with body failing because of missing Content-Length.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_garbage_in', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_garbage_in', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test that server sends an error for garbage received over TCP.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_http_connect_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_http_connect_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that CONNECT query results in Method Not Allowed status.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_large_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client_with_defaults)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_large_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test GET query with maliciously large Content-Length.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_malformed_header', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_malformed_header', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that broken HTTP header results in Bad Request.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_malformed_http_method', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_malformed_http_method', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test non-uppercase HTTP method.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_malformed_request_line', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, request_line, status_code, expected_body)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_malformed_request_line', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test missing or invalid HTTP version in Request-Line.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_no_content_length', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_no_content_length', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test POST query with an empty body being successful.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_normal_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_normal_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that normal GET query succeeds.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_acceptable_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, uri)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_acceptable_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that server responds with OK to valid GET queries.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_no_leading_slash_invalid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client, uri)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_no_leading_slash_invalid', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that server responds with Bad Request to invalid GET queries.', '', 'Invalid request line test case: it should have leading slash (be absolute).', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_uri_absolute_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_absolute_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that server responds with Bad Request to Absolute URI.', '', 'Only proxy servers should allow this.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_uri_asterisk_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_asterisk_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that server responds with OK to OPTIONS with "*" Absolute URI.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_uri_fragment_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_fragment_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that server responds with Bad Request to URI with fragment.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_uri_invalid_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_invalid_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that server responds with Bad Request to invalid GET queries.', '', 'Invalid request line test case: it should only contain US-ASCII.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_uri_unsafe_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_unsafe_uri', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test that malicious URI does not allow HTTP injection.', '', 'This effectively checks that sending GET request with URL', '', '/%A0%D0blah%20key%200%20900%204%20data', '', 'is not converted into', '', 'GET /', 'blah key 0 900 4 data', 'HTTP/1.1', '', 'which would be a security issue otherwise.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_query_string_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_query_string_request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that GET parameter is parsed well.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_request_line_split_issue_1220', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_request_line_split_issue_1220', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that HTTP request line of exactly 256 chars length is OK.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_send_header_before_closing', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(testing_server_close)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_send_header_before_closing', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["Test we are actually sending the headers before calling 'close'.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.testing_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.testing_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Attach a WSGI app to the given server and preconfigure it.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.testing_server_close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.testing_server_close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Attach a WSGI app to the given server and preconfigure it.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.testing_server_with_defaults', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.testing_server_with_defaults', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Attach a WSGI app to the given server and preconfigure it.', '']) [autodoc] output: .. py:module:: cheroot.test.test_core Tests for managing HTTP issues (malformed requests, etc). .. py:class:: CloseController() :module: cheroot.test.test_core Bases: :py:class:`object` Controller for testing the close callback. .. py:method:: CloseController.close() :module: cheroot.test.test_core Close, writing hello. .. py:class:: CloseResponse(close) :module: cheroot.test.test_core Bases: :py:class:`object` Dummy empty response to trigger the no body status. .. py:method:: CloseResponse.output() :module: cheroot.test.test_core Return self to hook the close method. .. py:class:: HelloController() :module: cheroot.test.test_core Bases: :py:class:`~cheroot.test.helper.Controller` Controller for serving WSGI apps. .. py:attribute:: HelloController.handlers :module: cheroot.test.test_core :value: {'/*': , '/body_required': , '/hello': , '/no_body': , '/query_string': , '/\xa0Ðblah key 0 900 4 data': , '/ЮÑ\x85Ñ\x85Ñ\x83Ñ\x83Ñ\x83': , '/пÑ\x80ивÑ\x96Ñ\x82': } .. py:class:: WSGICallables() :module: cheroot.test.test_core Bases: :py:class:`object` Controller for serving WSGI apps. .. py:method:: WSGICallables.asterisk(req, resp) :module: cheroot.test.test_core :staticmethod: Render request method value. .. py:method:: WSGICallables.body_required(req, resp) :module: cheroot.test.test_core :staticmethod: Render Hello world or set 411. .. py:method:: WSGICallables.hello(req, resp) :module: cheroot.test.test_core :staticmethod: Render Hello world. .. py:method:: WSGICallables.query_string(req, resp) :module: cheroot.test.test_core :staticmethod: Render QUERY_STRING value. .. py:function:: _get_http_response(connection, method='GET') :module: cheroot.test.test_core .. py:function:: _munge(string) :module: cheroot.test.test_core Encode PATH_INFO correctly depending on Python version. WSGI 1.0 is a mess around Unicode. Create endpoints that match the PATH_INFO that it produces. .. py:function:: test_client(testing_server) :module: cheroot.test.test_core Get and return a test client out of the given server. .. py:function:: test_client_with_defaults(testing_server_with_defaults) :module: cheroot.test.test_core Get and return a test client out of the given server. .. py:function:: test_content_length_required(test_client) :module: cheroot.test.test_core Test POST query with body failing because of missing Content-Length. .. py:function:: test_garbage_in(test_client) :module: cheroot.test.test_core Test that server sends an error for garbage received over TCP. .. py:function:: test_http_connect_request(test_client) :module: cheroot.test.test_core Check that CONNECT query results in Method Not Allowed status. .. py:function:: test_large_request(test_client_with_defaults) :module: cheroot.test.test_core Test GET query with maliciously large Content-Length. .. py:function:: test_malformed_header(test_client) :module: cheroot.test.test_core Check that broken HTTP header results in Bad Request. .. py:function:: test_malformed_http_method(test_client) :module: cheroot.test.test_core Test non-uppercase HTTP method. .. py:function:: test_malformed_request_line(test_client, request_line, status_code, expected_body) :module: cheroot.test.test_core Test missing or invalid HTTP version in Request-Line. .. py:function:: test_no_content_length(test_client) :module: cheroot.test.test_core Test POST query with an empty body being successful. .. py:function:: test_normal_request(test_client) :module: cheroot.test.test_core Check that normal GET query succeeds. .. py:function:: test_parse_acceptable_uri(test_client, uri) :module: cheroot.test.test_core Check that server responds with OK to valid GET queries. .. py:function:: test_parse_no_leading_slash_invalid(test_client, uri) :module: cheroot.test.test_core Check that server responds with Bad Request to invalid GET queries. Invalid request line test case: it should have leading slash (be absolute). .. py:function:: test_parse_uri_absolute_uri(test_client) :module: cheroot.test.test_core Check that server responds with Bad Request to Absolute URI. Only proxy servers should allow this. .. py:function:: test_parse_uri_asterisk_uri(test_client) :module: cheroot.test.test_core Check that server responds with OK to OPTIONS with "*" Absolute URI. .. py:function:: test_parse_uri_fragment_uri(test_client) :module: cheroot.test.test_core Check that server responds with Bad Request to URI with fragment. .. py:function:: test_parse_uri_invalid_uri(test_client) :module: cheroot.test.test_core Check that server responds with Bad Request to invalid GET queries. Invalid request line test case: it should only contain US-ASCII. .. py:function:: test_parse_uri_unsafe_uri(test_client) :module: cheroot.test.test_core Test that malicious URI does not allow HTTP injection. This effectively checks that sending GET request with URL /%A0%D0blah%20key%200%20900%204%20data is not converted into GET / blah key 0 900 4 data HTTP/1.1 which would be a security issue otherwise. .. py:function:: test_query_string_request(test_client) :module: cheroot.test.test_core Check that GET parameter is parsed well. .. py:function:: test_request_line_split_issue_1220(test_client) :module: cheroot.test.test_core Check that HTTP request line of exactly 256 chars length is OK. .. py:function:: test_send_header_before_closing(testing_server_close) :module: cheroot.test.test_core Test we are actually sending the headers before calling 'close'. .. py:function:: testing_server(wsgi_server_client) :module: cheroot.test.test_core Attach a WSGI app to the given server and preconfigure it. .. py:function:: testing_server_close(wsgi_server_client) :module: cheroot.test.test_core Attach a WSGI app to the given server and preconfigure it. .. py:function:: testing_server_with_defaults(wsgi_server_client) :module: cheroot.test.test_core Attach a WSGI app to the given server and preconfigure it. [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', ...>) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_core.rst:2: section "cheroot.test.test\_core module" gets labeled as "cheroot.test.test\_core module" reading sources... [ 69%] pkg/cheroot.test.test_dispatch [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_dispatch') [app] emitting event: 'source-read'('pkg/cheroot.test.test_dispatch', ['cheroot.test.test\\_dispatch module\n==================================\n\n.. automodule:: cheroot.test.test_dispatch\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_dispatch.rst:4: input: .. automodule:: cheroot.test.test_dispatch :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_dispatch [autodoc] import cheroot.test.test_dispatch => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_dispatch', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_dispatch', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Tests for the HTTP server.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'PathInfoDispatcher', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_dispatch.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for the HTTP server.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_dispatch.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b13e150>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_dispatch', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_dispatch', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b13e150>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_dispatch.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_dispatch_no_script_name', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_invoke', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_dispatch import PathInfoDispatcher [autodoc] import cheroot.test.test_dispatch => [autodoc] getattr(_, 'PathInfoDispatcher') [autodoc] => [autodoc] from cheroot.test.test_dispatch import test_dispatch_no_script_name [autodoc] import cheroot.test.test_dispatch => [autodoc] getattr(_, 'test_dispatch_no_script_name') [autodoc] => [autodoc] from cheroot.test.test_dispatch import wsgi_invoke [autodoc] import cheroot.test.test_dispatch => [autodoc] getattr(_, 'wsgi_invoke') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_dispatch.test_dispatch_no_script_name', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_dispatch.test_dispatch_no_script_name', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Dispatch despite lack of ``SCRIPT_NAME`` in environ.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_dispatch.wsgi_invoke', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(app, environ)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_dispatch.wsgi_invoke', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Serve 1 request from a WSGI application.', '']) [autodoc] output: .. py:module:: cheroot.test.test_dispatch Tests for the HTTP server. .. py:function:: test_dispatch_no_script_name() :module: cheroot.test.test_dispatch Dispatch despite lack of ``SCRIPT_NAME`` in environ. .. py:function:: wsgi_invoke(app, environ) :module: cheroot.test.test_dispatch Serve 1 request from a WSGI application. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_dispatch.rst:2: section "cheroot.test.test\_dispatch module" gets labeled as "cheroot.test.test\_dispatch module" reading sources... [ 72%] pkg/cheroot.test.test_errors [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_errors') [app] emitting event: 'source-read'('pkg/cheroot.test.test_errors', ['cheroot.test.test\\_errors module\n================================\n\n.. automodule:: cheroot.test.test_errors\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_errors.rst:4: input: .. automodule:: cheroot.test.test_errors :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_errors [autodoc] import cheroot.test.test_errors => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test suite for ``cheroot.errors``.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SOLARIS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_errors.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Test suite for ``cheroot.errors``.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_errors.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b13ee70>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_errors', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_errors', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b13ee70>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_errors.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_plat_specific_errors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_errors import test_plat_specific_errors [autodoc] import cheroot.test.test_errors => [autodoc] getattr(_, 'test_plat_specific_errors') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_errors.test_plat_specific_errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(err_names, err_nums)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_errors.test_plat_specific_errors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test that ``plat_specific_errors`` gets correct error numbers list.', '']) [autodoc] output: .. py:module:: cheroot.test.test_errors Test suite for ``cheroot.errors``. .. py:function:: test_plat_specific_errors(err_names, err_nums) :module: cheroot.test.test_errors Test that ``plat_specific_errors`` gets correct error numbers list. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_errors.rst:2: section "cheroot.test.test\_errors module" gets labeled as "cheroot.test.test\_errors module" reading sources... [ 75%] pkg/cheroot.test.test_makefile [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_makefile') [app] emitting event: 'source-read'('pkg/cheroot.test.test_makefile', ['cheroot.test.test\\_makefile module\n==================================\n\n.. automodule:: cheroot.test.test_makefile\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_makefile.rst:4: input: .. automodule:: cheroot.test.test_makefile :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_makefile [autodoc] import cheroot.test.test_makefile => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_makefile', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Tests for :py:mod:`cheroot.makefile`.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'MockSocket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_makefile.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for :py:mod:`cheroot.makefile`.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_makefile.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b13f590>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_makefile', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_makefile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b13f590>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_makefile.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'makefile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_bytes_read', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_bytes_written', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_makefile import MockSocket [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'MockSocket') [autodoc] => [autodoc] from cheroot.test.test_makefile import test_bytes_read [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'test_bytes_read') [autodoc] => [autodoc] from cheroot.test.test_makefile import test_bytes_written [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'test_bytes_written') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_makefile.MockSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_makefile.MockSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_makefile.MockSocket', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A mock socket.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.test_makefile', '__firstlineno__': 6, '__doc__': 'A mock socket.', '__init__': , 'recv_into': , 'recv': , 'send': , '_decref_socketios': , '__static_attributes__': ('messages',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A mock socket.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 6, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_makefile', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('messages',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_decref_socketios', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'recv', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'recv_into', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'send', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_makefile import MockSocket._decref_socketios [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'MockSocket') [autodoc] => [autodoc] getattr(_, '_decref_socketios') [autodoc] => [autodoc] from cheroot.test.test_makefile import MockSocket.recv [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'MockSocket') [autodoc] => [autodoc] getattr(_, 'recv') [autodoc] => [autodoc] from cheroot.test.test_makefile import MockSocket.recv_into [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'MockSocket') [autodoc] => [autodoc] getattr(_, 'recv_into') [autodoc] => [autodoc] from cheroot.test.test_makefile import MockSocket.send [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'MockSocket') [autodoc] => [autodoc] getattr(_, 'send') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_makefile.MockSocket._decref_socketios', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket._decref_socketios', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Emulate socket I/O reference decrement.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_makefile.MockSocket.recv', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(size)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket.recv', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Simulate ``recv`` for Python 2.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_makefile.MockSocket.recv_into', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(buf)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket.recv_into', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Simulate ``recv_into`` for Python 3.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_makefile.MockSocket.send', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(val)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket.send', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Simulate a send.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_makefile.test_bytes_read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_makefile.test_bytes_read', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Reader should capture bytes read.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_makefile.test_bytes_written', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_makefile.test_bytes_written', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Writer should capture bytes written.', '']) [autodoc] output: .. py:module:: cheroot.test.test_makefile Tests for :py:mod:`cheroot.makefile`. .. py:class:: MockSocket() :module: cheroot.test.test_makefile Bases: :py:class:`object` A mock socket. .. py:method:: MockSocket._decref_socketios() :module: cheroot.test.test_makefile Emulate socket I/O reference decrement. .. py:method:: MockSocket.recv(size) :module: cheroot.test.test_makefile Simulate ``recv`` for Python 2. .. py:method:: MockSocket.recv_into(buf) :module: cheroot.test.test_makefile Simulate ``recv_into`` for Python 3. .. py:method:: MockSocket.send(val) :module: cheroot.test.test_makefile Simulate a send. .. py:function:: test_bytes_read() :module: cheroot.test.test_makefile Reader should capture bytes read. .. py:function:: test_bytes_written() :module: cheroot.test.test_makefile Writer should capture bytes written. [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_makefile.rst:2: section "cheroot.test.test\_makefile module" gets labeled as "cheroot.test.test\_makefile module" reading sources... [ 78%] pkg/cheroot.test.test_server [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_server') [app] emitting event: 'source-read'('pkg/cheroot.test.test_server', ['cheroot.test.test\\_server module\n================================\n\n.. automodule:: cheroot.test.test_server\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_server.rst:4: input: .. automodule:: cheroot.test.test_server :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_server [autodoc] import cheroot.test.test_server => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Tests for the HTTP server.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV4', '0.0.0.0', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV6', '::', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'EPHEMERAL_PORT', 0, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPStatus', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SLOW_ENV', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_UID_GID_RESOLVABLE', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PEERCRED_IDS_URI', '/peer_creds/ids', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PEERCRED_TEXTS_URI', '/peer_creds/texts', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PY38_OR_LOWER', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SYS_PLATFORM', 'Linux', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ThreadPool', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_TestGateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_server.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for the HTTP server.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_server.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b165490>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_server', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b165490>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_server.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_garbage_bin', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'many_open_sockets', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'non_macos_sock_test', MarkDecorator(mark=Mark(name='skipif', args=(False,), kwargs={'reason': 'Peercreds lookup does not work under macOS/BSD currently.'})), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'peercreds_enabled_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'queue', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'requests', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'requests_unixsocket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'resource_limit', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tempfile', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_bind_addr_inet', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_bind_addr_unix', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_bind_addr_unix_abstract', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_high_number_of_file_descriptors', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_overload_results_in_suitable_http_error', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_peercreds_unix_sock', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_peercreds_unix_sock_with_lookup', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_prepare_makes_server_ready', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_reuse_port', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_server_interrupt', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_serving_is_false_and_stop_returns_after_ctrlc', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_stop_interrupts_serve', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_threadpool_invalid_threadrange', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_threadpool_multistart_validation', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_threadpool_threadrange_set', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'types', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'unix_abstract_sock', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'unix_file_sock', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'unix_only_sock_test', MarkDecorator(mark=Mark(name='skipif', args=(False,), kwargs={'reason': 'UNIX domain sockets are only available under UNIX-based OS'})), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'unix_sock_file', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'uuid', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_server import Gateway [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] from cheroot.test.test_server import HTTPServer [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] from cheroot.test.test_server import HTTPStatus [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'HTTPStatus') [autodoc] => [autodoc] from cheroot.test.test_server import ThreadPool [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] from cheroot.test.test_server import _TestGateway [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, '_TestGateway') [autodoc] => [autodoc] from cheroot.test.test_server import _garbage_bin [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, '_garbage_bin') [autodoc] => [autodoc] from cheroot.test.test_server import bton [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'bton') [autodoc] => [autodoc] from cheroot.test.test_server import many_open_sockets [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'many_open_sockets') [autodoc] => [autodoc] from cheroot.test.test_server import ntob [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'ntob') [autodoc] => [autodoc] from cheroot.test.test_server import peercreds_enabled_server [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'peercreds_enabled_server') [autodoc] => [autodoc] from cheroot.test.test_server import resource_limit [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'resource_limit') [autodoc] => [autodoc] from cheroot.test.test_server import test_bind_addr_inet [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_bind_addr_inet') [autodoc] => [autodoc] from cheroot.test.test_server import test_bind_addr_unix [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_bind_addr_unix') [autodoc] => [autodoc] from cheroot.test.test_server import test_bind_addr_unix_abstract [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_bind_addr_unix_abstract') [autodoc] => [autodoc] from cheroot.test.test_server import test_high_number_of_file_descriptors [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_high_number_of_file_descriptors') [autodoc] => [autodoc] from cheroot.test.test_server import test_overload_results_in_suitable_http_error [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_overload_results_in_suitable_http_error') [autodoc] => [autodoc] from cheroot.test.test_server import test_peercreds_unix_sock [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_peercreds_unix_sock') [autodoc] => [autodoc] from cheroot.test.test_server import test_peercreds_unix_sock_with_lookup [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_peercreds_unix_sock_with_lookup') [autodoc] => [autodoc] from cheroot.test.test_server import test_prepare_makes_server_ready [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_prepare_makes_server_ready') [autodoc] => [autodoc] from cheroot.test.test_server import test_reuse_port [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_reuse_port') [autodoc] => [autodoc] from cheroot.test.test_server import test_server_interrupt [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_server_interrupt') [autodoc] => [autodoc] from cheroot.test.test_server import test_serving_is_false_and_stop_returns_after_ctrlc [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_serving_is_false_and_stop_returns_after_ctrlc') [autodoc] => [autodoc] from cheroot.test.test_server import test_stop_interrupts_serve [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_stop_interrupts_serve') [autodoc] => [autodoc] from cheroot.test.test_server import test_threadpool_invalid_threadrange [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_threadpool_invalid_threadrange') [autodoc] => [autodoc] from cheroot.test.test_server import test_threadpool_multistart_validation [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_threadpool_multistart_validation') [autodoc] => [autodoc] from cheroot.test.test_server import test_threadpool_threadrange_set [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_threadpool_threadrange_set') [autodoc] => [autodoc] from cheroot.test.test_server import unix_abstract_sock [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'unix_abstract_sock') [autodoc] => [autodoc] from cheroot.test.test_server import unix_file_sock [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'unix_file_sock') [autodoc] => [autodoc] from cheroot.test.test_server import unix_sock_file [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'unix_sock_file') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_server._TestGateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_server._TestGateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_server._TestGateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 234, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_server', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'send_payload', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_server import _TestGateway.respond [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, '_TestGateway') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [autodoc] from cheroot.test.test_server import _TestGateway.send_payload [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, '_TestGateway') [autodoc] => [autodoc] getattr(_, 'send_payload') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_server._TestGateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_server._TestGateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Process the current request. Must be overridden in a subclass.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_server._TestGateway.send_payload', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(payload)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_server._TestGateway.send_payload', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server._garbage_bin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server._garbage_bin', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Disable garbage collection when this fixture is in use.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.many_open_sockets', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(request, resource_limit)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.many_open_sockets', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Allocate a lot of file descriptors by opening dummy sockets.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.peercreds_enabled_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_server, unix_sock_file)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.peercreds_enabled_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Construct a test server with ``peercreds_enabled``.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.resource_limit', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.resource_limit', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set the resource limit two times bigger then requested.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_bind_addr_inet', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_server, ip_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_bind_addr_inet', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that bound IP address is stored in server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_bind_addr_unix', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_server, unix_sock_file)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_bind_addr_unix', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that bound UNIX socket address is stored in server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_bind_addr_unix_abstract', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_server, unix_abstract_sock)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_bind_addr_unix_abstract', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that bound UNIX abstract socket address is stored in server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_high_number_of_file_descriptors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(native_server_client, resource_limit)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_high_number_of_file_descriptors', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test the server does not crash with a high file-descriptor value.', '', "This test shouldn't cause a server crash when trying to access", 'file-descriptor higher than 1024.', '', 'The earlier implementation used to rely on ``select()`` syscall that', "doesn't support file descriptors with numbers higher than 1024.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_overload_results_in_suitable_http_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_overload_results_in_suitable_http_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["A server that can't keep up with requests returns a 503 HTTP error.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_peercreds_unix_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_request_timeout, peercreds_enabled_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_peercreds_unix_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that ``PEERCRED`` lookup works when enabled.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_peercreds_unix_sock_with_lookup', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_request_timeout, peercreds_enabled_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_peercreds_unix_sock_with_lookup', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that ``PEERCRED`` resolution works when enabled.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_prepare_makes_server_ready', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_prepare_makes_server_ready', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that prepare() makes the server ready, and stop() clears it.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_reuse_port', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_server, ip_addr, mocker)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_reuse_port', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that port initialized externally can be reused.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_server_interrupt', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(exc_cls)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_server_interrupt', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that assigning interrupt stops the server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_serving_is_false_and_stop_returns_after_ctrlc', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_serving_is_false_and_stop_returns_after_ctrlc', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that stop() interrupts running of serve().', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_stop_interrupts_serve', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_stop_interrupts_serve', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that stop() interrupts running of serve().', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_threadpool_invalid_threadrange', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(minthreads, maxthreads, error)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_threadpool_invalid_threadrange', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test that a ThreadPool rejects invalid min/max values.', '', 'The ThreadPool should raise an error with the proper message when', 'initialized with an invalid min+max number of threads.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_threadpool_multistart_validation', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_threadpool_multistart_validation', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test for ThreadPool multi-start behavior.', '', 'Tests that when calling start() on a ThreadPool multiple times raises a', ':exc:`RuntimeError`', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_threadpool_threadrange_set', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(minthreads, maxthreads, inited_maxthreads)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_threadpool_threadrange_set', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test setting the number of threads in a ThreadPool.', '', 'The ThreadPool should properly set the min+max number of the threads to use', 'in the pool if those limits are valid.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.unix_abstract_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.unix_abstract_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return an abstract UNIX socket address.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.unix_file_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.unix_file_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Yield a UNIX file socket.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.unix_sock_file', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.unix_sock_file', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that bound UNIX socket address is stored in server.', '']) [autodoc] output: .. py:module:: cheroot.test.test_server Tests for the HTTP server. .. py:class:: _TestGateway(req) :module: cheroot.test.test_server Bases: :py:class:`~cheroot.server.Gateway` .. py:method:: _TestGateway.respond() :module: cheroot.test.test_server Process the current request. Must be overridden in a subclass. .. py:method:: _TestGateway.send_payload(payload) :module: cheroot.test.test_server .. py:function:: _garbage_bin() :module: cheroot.test.test_server Disable garbage collection when this fixture is in use. .. py:function:: many_open_sockets(request, resource_limit) :module: cheroot.test.test_server Allocate a lot of file descriptors by opening dummy sockets. .. py:function:: peercreds_enabled_server(http_server, unix_sock_file) :module: cheroot.test.test_server Construct a test server with ``peercreds_enabled``. .. py:function:: resource_limit(request) :module: cheroot.test.test_server Set the resource limit two times bigger then requested. .. py:function:: test_bind_addr_inet(http_server, ip_addr) :module: cheroot.test.test_server Check that bound IP address is stored in server. .. py:function:: test_bind_addr_unix(http_server, unix_sock_file) :module: cheroot.test.test_server Check that bound UNIX socket address is stored in server. .. py:function:: test_bind_addr_unix_abstract(http_server, unix_abstract_sock) :module: cheroot.test.test_server Check that bound UNIX abstract socket address is stored in server. .. py:function:: test_high_number_of_file_descriptors(native_server_client, resource_limit) :module: cheroot.test.test_server Test the server does not crash with a high file-descriptor value. This test shouldn't cause a server crash when trying to access file-descriptor higher than 1024. The earlier implementation used to rely on ``select()`` syscall that doesn't support file descriptors with numbers higher than 1024. .. py:function:: test_overload_results_in_suitable_http_error(request) :module: cheroot.test.test_server A server that can't keep up with requests returns a 503 HTTP error. .. py:function:: test_peercreds_unix_sock(http_request_timeout, peercreds_enabled_server) :module: cheroot.test.test_server Check that ``PEERCRED`` lookup works when enabled. .. py:function:: test_peercreds_unix_sock_with_lookup(http_request_timeout, peercreds_enabled_server) :module: cheroot.test.test_server Check that ``PEERCRED`` resolution works when enabled. .. py:function:: test_prepare_makes_server_ready() :module: cheroot.test.test_server Check that prepare() makes the server ready, and stop() clears it. .. py:function:: test_reuse_port(http_server, ip_addr, mocker) :module: cheroot.test.test_server Check that port initialized externally can be reused. .. py:function:: test_server_interrupt(exc_cls) :module: cheroot.test.test_server Check that assigning interrupt stops the server. .. py:function:: test_serving_is_false_and_stop_returns_after_ctrlc() :module: cheroot.test.test_server Check that stop() interrupts running of serve(). .. py:function:: test_stop_interrupts_serve() :module: cheroot.test.test_server Check that stop() interrupts running of serve(). .. py:function:: test_threadpool_invalid_threadrange(minthreads, maxthreads, error) :module: cheroot.test.test_server Test that a ThreadPool rejects invalid min/max values. The ThreadPool should raise an error with the proper message when initialized with an invalid min+max number of threads. .. py:function:: test_threadpool_multistart_validation(monkeypatch) :module: cheroot.test.test_server Test for ThreadPool multi-start behavior. Tests that when calling start() on a ThreadPool multiple times raises a :exc:`RuntimeError` .. py:function:: test_threadpool_threadrange_set(minthreads, maxthreads, inited_maxthreads) :module: cheroot.test.test_server Test setting the number of threads in a ThreadPool. The ThreadPool should properly set the min+max number of the threads to use in the pool if those limits are valid. .. py:function:: unix_abstract_sock() :module: cheroot.test.test_server Return an abstract UNIX socket address. .. py:function:: unix_file_sock() :module: cheroot.test.test_server Yield a UNIX file socket. .. py:function:: unix_sock_file(request) :module: cheroot.test.test_server Check that bound UNIX socket address is stored in server. [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_server.rst:2: section "cheroot.test.test\_server module" gets labeled as "cheroot.test.test\_server module" reading sources... [ 81%] pkg/cheroot.test.test_ssl [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_ssl') [app] emitting event: 'source-read'('pkg/cheroot.test.test_ssl', ['cheroot.test.test\\_ssl module\n=============================\n\n.. automodule:: cheroot.test.test_ssl\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_ssl.rst:4: input: .. automodule:: cheroot.test.test_ssl :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_ssl [autodoc] import cheroot.test.test_ssl => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_ssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_ssl', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Tests for TLS support.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV4', '0.0.0.0', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV6', '::', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'BestAvailableEncryption', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'EPHEMERAL_PORT', 0, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Encoding', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway_10', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'HelloWorldGateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL10', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL31', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_CI', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_GITHUB_ACTIONS_WORKFLOW', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LIBRESSL_BACKEND', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYOPENSSL_SSL_VERSION_1_0', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYPY', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SOLARIS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WIN2016', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'OpenSSL', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PY310_PLUS', True, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PY38_OR_LOWER', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PrivateFormat', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'SYS_PLATFORM', 'Linux', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_ssl.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for TLS support.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_ssl.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b1a1310>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_ssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_ssl', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b1a1310>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_ssl.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_get_conn_data', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_probe_ipv6_sock', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_stdlib_to_openssl_verify', {: 0, : 1, : 3}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_thread_except_hook', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ca', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'default_backend', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'functools', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'get_ssl_adapter_class', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'json', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'load_pem_private_key', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'make_tls_http_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'missing_ipv6', MarkDecorator(mark=Mark(name='skipif', args=(False,), kwargs={'reason': 'IPv6 is disabled (for example, under Travis CI which runs under GCE supporting only IPv4)'})), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntou', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'private_key_password', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'requests', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ssl', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'subprocess', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_builtin_adapter_with_false_key_password', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_http_over_https_error', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_https_over_http_error', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_openssl_adapter_with_false_key_password', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_ssl_adapters', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_ssl_adapters_with_private_key_password', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_ssl_env', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_tls_client_auth', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'thread_exceptions', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tls_ca_certificate_pem_path', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate_chain_pem_path', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate_passwd_private_key_pem_path', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate_private_key_pem_path', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tls_http_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'traceback', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'trustme', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_ssl import BestAvailableEncryption [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'BestAvailableEncryption') [autodoc] => [autodoc] from cheroot.test.test_ssl import Encoding [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'Encoding') [autodoc] => [autodoc] from cheroot.test.test_ssl import Gateway [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] from cheroot.test.test_ssl import Gateway_10 [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'Gateway_10') [autodoc] => [autodoc] from cheroot.test.test_ssl import HTTPServer [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] from cheroot.test.test_ssl import HelloWorldGateway [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'HelloWorldGateway') [autodoc] => [autodoc] from cheroot.test.test_ssl import PrivateFormat [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'PrivateFormat') [autodoc] => [autodoc] from cheroot.test.test_ssl import _get_conn_data [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, '_get_conn_data') [autodoc] => [autodoc] from cheroot.test.test_ssl import _probe_ipv6_sock [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, '_probe_ipv6_sock') [autodoc] => [autodoc] from cheroot.test.test_ssl import _thread_except_hook [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, '_thread_except_hook') [autodoc] => [autodoc] from cheroot.test.test_ssl import bton [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'bton') [autodoc] => [autodoc] from cheroot.test.test_ssl import ca [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'ca') [autodoc] => [autodoc] from cheroot.test.test_ssl import default_backend [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'default_backend') [autodoc] => [autodoc] from cheroot.test.test_ssl import get_ssl_adapter_class [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'get_ssl_adapter_class') [autodoc] => [autodoc] from cheroot.test.test_ssl import load_pem_private_key [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'load_pem_private_key') [autodoc] => [autodoc] from cheroot.test.test_ssl import make_tls_http_server [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'make_tls_http_server') [autodoc] => [autodoc] from cheroot.test.test_ssl import ntob [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'ntob') [autodoc] => [autodoc] from cheroot.test.test_ssl import ntou [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'ntou') [autodoc] => [autodoc] from cheroot.test.test_ssl import private_key_password [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'private_key_password') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_builtin_adapter_with_false_key_password [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_builtin_adapter_with_false_key_password') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_http_over_https_error [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_http_over_https_error') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_https_over_http_error [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_https_over_http_error') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_openssl_adapter_with_false_key_password [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_openssl_adapter_with_false_key_password') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_ssl_adapters [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_ssl_adapters') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_ssl_adapters_with_private_key_password [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_ssl_adapters_with_private_key_password') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_ssl_env [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_ssl_env') [autodoc] => [autodoc] from cheroot.test.test_ssl import test_tls_client_auth [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_tls_client_auth') [autodoc] => [autodoc] from cheroot.test.test_ssl import thread_exceptions [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'thread_exceptions') [autodoc] => [autodoc] from cheroot.test.test_ssl import tls_ca_certificate_pem_path [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'tls_ca_certificate_pem_path') [autodoc] => [autodoc] from cheroot.test.test_ssl import tls_certificate [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'tls_certificate') [autodoc] => [autodoc] from cheroot.test.test_ssl import tls_certificate_chain_pem_path [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'tls_certificate_chain_pem_path') [autodoc] => [autodoc] from cheroot.test.test_ssl import tls_certificate_passwd_private_key_pem_path [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'tls_certificate_passwd_private_key_pem_path') [autodoc] => [autodoc] from cheroot.test.test_ssl import tls_certificate_private_key_pem_path [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'tls_certificate_private_key_pem_path') [autodoc] => [autodoc] from cheroot.test.test_ssl import tls_http_server [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'tls_http_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_ssl.HelloWorldGateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_ssl.HelloWorldGateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_ssl.HelloWorldGateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Gateway responding with Hello World to root URI.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Gateway responding with Hello World to root URI.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 105, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_ssl', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_ssl import HelloWorldGateway.respond [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'HelloWorldGateway') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_ssl.HelloWorldGateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_ssl.HelloWorldGateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Respond with dummy content via HTTP.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl._thread_except_hook', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(exceptions, args)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl._thread_except_hook', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Append uncaught exception ``args`` in threads to ``exceptions``.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.ca', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.ca', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provide a certificate authority via fixture.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.make_tls_http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr, ssl_adapter, request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.make_tls_http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create and start an HTTP server bound to ``bind_addr``.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.private_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.private_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provide hardcoded password for private key.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_builtin_adapter_with_false_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, adapter_type)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_builtin_adapter_with_false_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that builtin ssl-adapter initialization fails when wrong private key password given.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_http_over_https_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_request_timeout, tls_http_server, adapter_type, ca, ip_addr, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_http_over_https_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Ensure that connecting over HTTP to HTTPS port is handled.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_https_over_http_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_server, ip_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_https_over_http_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Ensure that connecting over HTTPS to HTTP port is handled.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_openssl_adapter_with_false_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, adapter_type, false_password, expected_warn)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_openssl_adapter_with_false_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that server init fails when wrong private key password given.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_ssl_adapters', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_request_timeout, tls_http_server, adapter_type, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_ssl_adapters', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test ability to connect to server via HTTPS using adapters.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_ssl_adapters_with_private_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_request_timeout, private_key_password, tls_http_server, tls_ca_certificate_pem_path, tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, tls_certificate_private_key_pem_path, adapter_type, encrypted_key, password_as_bytes)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_ssl_adapters_with_private_key_password', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check server decrypts private TLS keys with password as bytes or str.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_ssl_env', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(thread_exceptions, recwarn, mocker, http_request_timeout, tls_http_server, adapter_type, ca, tls_verify_mode, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path, use_client_cert)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_ssl_env', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test the SSL environment generated by the SSL adapters.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_tls_client_auth', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(http_request_timeout, mocker, tls_http_server, adapter_type, ca, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path, is_trusted_cert, tls_client_identity, tls_verify_mode)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_tls_client_auth', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Verify that client TLS certificate auth works correctly.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.thread_exceptions', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.thread_exceptions', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provide a list of uncaught exceptions from threads via a fixture.', '', 'Only catches exceptions on Python 3.8+.', 'The list contains: ``(type, str(value), str(traceback))``', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_ca_certificate_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(ca)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_ca_certificate_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provide a certificate authority certificate file via fixture.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_certificate', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(ca)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_certificate', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provide a leaf certificate via fixture.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_certificate_chain_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(tls_certificate)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_certificate_chain_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provide a certificate chain PEM file path via fixture.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_certificate_passwd_private_key_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(tls_certificate, private_key_password, tmp_path)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_certificate_passwd_private_key_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a certificate private key PEM file path.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_certificate_private_key_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(tls_certificate)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_certificate_private_key_pem_path', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provide a certificate private key PEM file path via fixture.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_http_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Provision a server creator as a fixture.', '']) [autodoc] output: .. py:module:: cheroot.test.test_ssl Tests for TLS support. .. py:class:: HelloWorldGateway(req) :module: cheroot.test.test_ssl Bases: :py:class:`~cheroot.wsgi.Gateway_10` Gateway responding with Hello World to root URI. .. py:method:: HelloWorldGateway.respond() :module: cheroot.test.test_ssl Respond with dummy content via HTTP. .. py:function:: _thread_except_hook(exceptions, args) :module: cheroot.test.test_ssl Append uncaught exception ``args`` in threads to ``exceptions``. .. py:function:: ca() :module: cheroot.test.test_ssl Provide a certificate authority via fixture. .. py:function:: make_tls_http_server(bind_addr, ssl_adapter, request) :module: cheroot.test.test_ssl Create and start an HTTP server bound to ``bind_addr``. .. py:function:: private_key_password() :module: cheroot.test.test_ssl Provide hardcoded password for private key. .. py:function:: test_builtin_adapter_with_false_key_password(tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, adapter_type) :module: cheroot.test.test_ssl Check that builtin ssl-adapter initialization fails when wrong private key password given. .. py:function:: test_http_over_https_error(http_request_timeout, tls_http_server, adapter_type, ca, ip_addr, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path) :module: cheroot.test.test_ssl Ensure that connecting over HTTP to HTTPS port is handled. .. py:function:: test_https_over_http_error(http_server, ip_addr) :module: cheroot.test.test_ssl Ensure that connecting over HTTPS to HTTP port is handled. .. py:function:: test_openssl_adapter_with_false_key_password(tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, adapter_type, false_password, expected_warn) :module: cheroot.test.test_ssl Check that server init fails when wrong private key password given. .. py:function:: test_ssl_adapters(http_request_timeout, tls_http_server, adapter_type, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path) :module: cheroot.test.test_ssl Test ability to connect to server via HTTPS using adapters. .. py:function:: test_ssl_adapters_with_private_key_password(http_request_timeout, private_key_password, tls_http_server, tls_ca_certificate_pem_path, tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, tls_certificate_private_key_pem_path, adapter_type, encrypted_key, password_as_bytes) :module: cheroot.test.test_ssl Check server decrypts private TLS keys with password as bytes or str. .. py:function:: test_ssl_env(thread_exceptions, recwarn, mocker, http_request_timeout, tls_http_server, adapter_type, ca, tls_verify_mode, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path, use_client_cert) :module: cheroot.test.test_ssl Test the SSL environment generated by the SSL adapters. .. py:function:: test_tls_client_auth(http_request_timeout, mocker, tls_http_server, adapter_type, ca, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path, is_trusted_cert, tls_client_identity, tls_verify_mode) :module: cheroot.test.test_ssl Verify that client TLS certificate auth works correctly. .. py:function:: thread_exceptions() :module: cheroot.test.test_ssl Provide a list of uncaught exceptions from threads via a fixture. Only catches exceptions on Python 3.8+. The list contains: ``(type, str(value), str(traceback))`` .. py:function:: tls_ca_certificate_pem_path(ca) :module: cheroot.test.test_ssl Provide a certificate authority certificate file via fixture. .. py:function:: tls_certificate(ca) :module: cheroot.test.test_ssl Provide a leaf certificate via fixture. .. py:function:: tls_certificate_chain_pem_path(tls_certificate) :module: cheroot.test.test_ssl Provide a certificate chain PEM file path via fixture. .. py:function:: tls_certificate_passwd_private_key_pem_path(tls_certificate, private_key_password, tmp_path) :module: cheroot.test.test_ssl Return a certificate private key PEM file path. .. py:function:: tls_certificate_private_key_pem_path(tls_certificate) :module: cheroot.test.test_ssl Provide a certificate private key PEM file path via fixture. .. py:function:: tls_http_server(request) :module: cheroot.test.test_ssl Provision a server creator as a fixture. [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_ssl.rst:2: section "cheroot.test.test\_ssl module" gets labeled as "cheroot.test.test\_ssl module" reading sources... [ 83%] pkg/cheroot.test.test_wsgi [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.test_wsgi') [app] emitting event: 'source-read'('pkg/cheroot.test.test_wsgi', ['cheroot.test.test\\_wsgi module\n==============================\n\n.. automodule:: cheroot.test.test_wsgi\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_wsgi.rst:4: input: .. automodule:: cheroot.test.test_wsgi :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.test_wsgi [autodoc] import cheroot.test.test_wsgi => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.test_wsgi', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_wsgi', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test wsgi.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SLOW_ENV', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Session', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ThreadPoolExecutor', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/test_wsgi.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Test wsgi.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_wsgi.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460af483b0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_wsgi', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_wsgi', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460af483b0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_wsgi.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'portend', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'print_tb', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'requests', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'simple_wsgi_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_connection_keepalive', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_gateway_start_response_called_twice', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'test_gateway_write_needs_start_response_called_before', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.test_wsgi import Session [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'Session') [autodoc] => [autodoc] from cheroot.test.test_wsgi import ThreadPoolExecutor [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'ThreadPoolExecutor') [autodoc] => [autodoc] from cheroot.test.test_wsgi import print_tb [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'print_tb') [autodoc] => [autodoc] from cheroot.test.test_wsgi import simple_wsgi_server [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'simple_wsgi_server') [autodoc] => [autodoc] from cheroot.test.test_wsgi import test_connection_keepalive [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'test_connection_keepalive') [autodoc] => [autodoc] from cheroot.test.test_wsgi import test_gateway_start_response_called_twice [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'test_gateway_start_response_called_twice') [autodoc] => [autodoc] from cheroot.test.test_wsgi import test_gateway_write_needs_start_response_called_before [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'test_gateway_write_needs_start_response_called_before') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_wsgi.simple_wsgi_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.simple_wsgi_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fucking simple wsgi server fixture (duh).', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_wsgi.test_connection_keepalive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(simple_wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.test_connection_keepalive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Test the connection keep-alive works (duh).', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_wsgi.test_gateway_start_response_called_twice', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.test_gateway_start_response_called_twice', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Verify that repeat calls of ``Gateway.start_response()`` fail.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_wsgi.test_gateway_write_needs_start_response_called_before', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.test_gateway_write_needs_start_response_called_before', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check that calling ``Gateway.write()`` needs started response.', '']) [autodoc] output: .. py:module:: cheroot.test.test_wsgi Test wsgi. .. py:function:: simple_wsgi_server() :module: cheroot.test.test_wsgi Fucking simple wsgi server fixture (duh). .. py:function:: test_connection_keepalive(simple_wsgi_server) :module: cheroot.test.test_wsgi Test the connection keep-alive works (duh). .. py:function:: test_gateway_start_response_called_twice(monkeypatch) :module: cheroot.test.test_wsgi Verify that repeat calls of ``Gateway.start_response()`` fail. .. py:function:: test_gateway_write_needs_start_response_called_before(monkeypatch) :module: cheroot.test.test_wsgi Check that calling ``Gateway.write()`` needs started response. [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.test_wsgi.rst:2: section "cheroot.test.test\_wsgi module" gets labeled as "cheroot.test.test\_wsgi module" reading sources... [ 86%] pkg/cheroot.test.webtest [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.test.webtest') [app] emitting event: 'source-read'('pkg/cheroot.test.webtest', ['cheroot.test.webtest module\n===========================\n\n.. automodule:: cheroot.test.webtest\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.webtest.rst:4: input: .. automodule:: cheroot.test.webtest :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.test.webtest [autodoc] import cheroot.test.webtest => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.webtest', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.webtest', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Extensions to unittest for web frameworks.', '', 'Use the :py:meth:`WebCase.getPage` method to request a page', 'from your HTTP server.', '', 'Framework Integration', '=====================', 'If you have control over your server process, you can handle errors', 'in the server-side of the HTTP conversation a bit better. You must run', 'both the client (your :py:class:`WebCase` tests) and the server in the', 'same process (but in separate threads, obviously).', 'When an error occurs in the framework, call server_error. It will print', 'the traceback to stdout, and keep any assertions you have from running', '(the assumption is that, if the server errors, the page output will not', 'be of further significance to your tests).', '']) [app] emitting event: 'autodoc-skip-member'('module', 'NonDataProperty', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ServerError', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WebCase', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/__pycache__/webtest.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Extensions to unittest for web frameworks.\n\nUse the :py:meth:`WebCase.getPage` method to request a page\nfrom your HTTP server.\n\nFramework Integration\n=====================\nIf you have control over your server process, you can handle errors\nin the server-side of the HTTP conversation a bit better. You must run\nboth the client (your :py:class:`WebCase` tests) and the server in the\nsame process (but in separate threads, obviously).\nWhen an error occurs in the framework, call server_error. It will print\nthe traceback to stdout, and keep any assertions you have from running\n(the assumption is that, if the server errors, the page output will not\nbe of further significance to your tests).\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/webtest.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b53f8f0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.webtest', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.webtest', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b53f8f0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/webtest.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_open_url_once', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'always_iterable', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'cleanHeaders', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'functools', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'getchar', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ignore_all', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ignored_exceptions', [], False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'interface', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'jaraco', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'json', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'methods_with_bodies', ('POST', 'PUT', 'PATCH'), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'openURL', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pprint', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 're', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'server_error', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'shb', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'strip_netloc', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'termios', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'traceback', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'tty', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'unittest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'warnings', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.webtest import NonDataProperty [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'NonDataProperty') [autodoc] => [autodoc] from cheroot.test.webtest import ServerError [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'ServerError') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] from cheroot.test.webtest import _open_url_once [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, '_open_url_once') [autodoc] => [autodoc] from cheroot.test.webtest import always_iterable [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'always_iterable') [autodoc] => [autodoc] from cheroot.test.webtest import cleanHeaders [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'cleanHeaders') [autodoc] => [autodoc] from cheroot.test.webtest import getchar [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'getchar') [autodoc] => [autodoc] from cheroot.test.webtest import interface [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'interface') [autodoc] => [autodoc] from cheroot.test.webtest import openURL [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'openURL') [autodoc] => [autodoc] from cheroot.test.webtest import server_error [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'server_error') [autodoc] => [autodoc] from cheroot.test.webtest import shb [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'shb') [autodoc] => [autodoc] from cheroot.test.webtest import strip_netloc [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'strip_netloc') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.webtest.NonDataProperty', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(fget)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.webtest.NonDataProperty', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.webtest.NonDataProperty', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Non-data property decorator.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.test.webtest', '__firstlineno__': 85, '__doc__': 'Non-data property decorator.', '__init__': , '__get__': , '__static_attributes__': ('fget',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Non-data property decorator.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 85, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__get__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.webtest', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('fget',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.test.webtest.ServerError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.webtest.ServerError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.test.webtest.ServerError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Exception for signalling server error.', '']) [app] emitting event: 'autodoc-skip-member'('exception', '__doc__', 'Exception for signalling server error.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 582, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.test.webtest', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('exception', 'on', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.webtest import ServerError.on [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'ServerError') [autodoc] => [autodoc] getattr(_, 'on') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.ServerError.on', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.webtest.WebCase', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(methodName='runTest')", None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.webtest.WebCase', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.webtest.WebCase', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Helper web test suite base.', '']) [app] emitting event: 'autodoc-skip-member'('class', 'HOST', '127.0.0.1', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'HTTP_CONN', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'PORT', 8000, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'PROTOCOL', 'HTTP/1.1', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_Conn', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Helper web test suite base.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 101, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.webtest', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('HTTP_CONN', 'body', 'cookies', 'headers', 'status', 'time', 'url'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_classSetupFailed', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_class_cleanups', [], False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_handlewebError', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertBody', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertHeader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertHeaderIn', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertHeaderItemValue', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertInBody', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertMatchesBody', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertNoHeader', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertNoHeaderItemValue', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertNotInBody', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'assertStatus', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'body', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'console_height', 30, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'encoding', 'utf-8', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'getPage', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_conn', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'headers', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'interactive', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'interface', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'persistent', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'scheme', 'http', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'set_persistent', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_context', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'status', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'status_code', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'status_matches', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'time', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'url', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.test.webtest import WebCase.HOST [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'HOST') [autodoc] => '127.0.0.1' [autodoc] from cheroot.test.webtest import WebCase.HTTP_CONN [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'HTTP_CONN') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.PORT [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'PORT') [autodoc] => 8000 [autodoc] from cheroot.test.webtest import WebCase.PROTOCOL [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'PROTOCOL') [autodoc] => 'HTTP/1.1' [autodoc] from cheroot.test.webtest import WebCase._Conn [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_Conn') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase._classSetupFailed [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_classSetupFailed') [autodoc] => False [autodoc] from cheroot.test.webtest import WebCase._class_cleanups [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_class_cleanups') [autodoc] => [] [autodoc] from cheroot.test.webtest import WebCase._handlewebError [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_handlewebError') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertBody') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertHeader [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertHeader') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertHeaderIn [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertHeaderIn') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertHeaderItemValue [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertHeaderItemValue') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertInBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertInBody') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertMatchesBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertMatchesBody') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertNoHeader [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertNoHeader') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertNoHeaderItemValue [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertNoHeaderItemValue') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertNotInBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertNotInBody') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.assertStatus [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertStatus') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.body [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'body') [autodoc] => None [autodoc] from cheroot.test.webtest import WebCase.console_height [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'console_height') [autodoc] => 30 [autodoc] from cheroot.test.webtest import WebCase.encoding [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'encoding') [autodoc] => 'utf-8' [autodoc] from cheroot.test.webtest import WebCase.getPage [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'getPage') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.get_conn [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'get_conn') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.headers [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'headers') [autodoc] => None [autodoc] from cheroot.test.webtest import WebCase.interactive [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'interactive') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.interface [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'interface') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.persistent [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'persistent') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.scheme [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'scheme') [autodoc] => 'http' [autodoc] from cheroot.test.webtest import WebCase.set_persistent [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'set_persistent') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.ssl_context [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'ssl_context') [autodoc] => None [autodoc] from cheroot.test.webtest import WebCase.status [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'status') [autodoc] => None [autodoc] from cheroot.test.webtest import WebCase.status_code [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'status_code') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.status_matches [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'status_matches') [autodoc] => [autodoc] from cheroot.test.webtest import WebCase.time [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'time') [autodoc] => None [autodoc] from cheroot.test.webtest import WebCase.url [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'url') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.HOST', '127.0.0.1', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.PORT', 8000, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.PROTOCOL', 'HTTP/1.1', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.test.webtest.WebCase._Conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.test.webtest.WebCase._Conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return HTTPConnection or HTTPSConnection based on self.scheme.', '', '* from :py:mod:`python:http.client`.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase._classSetupFailed', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase._class_cleanups', [], {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase._handlewebError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(msg)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase._handlewebError', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if value != self.body.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertHeader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key, value=None, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertHeader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if (key, [value]) not in self.headers.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertHeaderIn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key, values, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertHeaderIn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ["Fail if header indicated by key doesn't have one of the values.", '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertHeaderItemValue', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key, value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertHeaderItemValue', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if the header does not contain the specified value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertInBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertInBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if value not in self.body.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertMatchesBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(pattern, msg=None, flags=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertMatchesBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if value (a regex pattern) is not in self.body.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertNoHeader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertNoHeader', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if key in self.headers.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertNoHeaderItemValue', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(key, value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertNoHeaderItemValue', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if the header contains the specified value.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertNotInBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertNotInBody', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if value in self.body.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertStatus', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(status, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertStatus', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Fail if self.status != status.', '', 'status may be integer code, exact string status, or', 'iterable of allowed possibilities.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.body', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.console_height', 30, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.encoding', 'utf-8', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.getPage', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(url, headers=None, method='GET', body=None, protocol=None, raise_subcls=())", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.getPage', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Open the url with debugging support.', '', 'Return status, headers, body.', '', 'url should be the identifier passed to the server, typically a', 'server-absolute path and query string (sent between method and', 'protocol), and should only be an absolute URI if proxy support is', 'enabled in the server.', '', 'If the application under test generates absolute URIs, be sure', 'to wrap them first with :py:func:`strip_netloc`::', '', ' >>> class MyAppWebCase(WebCase):', ' ... def getPage(url, *args, **kwargs):', ' ... super(MyAppWebCase, self).getPage(', ' ... cheroot.test.webtest.strip_netloc(url),', ' ... *args, **kwargs', ' ... )', '', '``raise_subcls`` is passed through to :py:func:`openURL`.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.get_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(auto_open=False)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.get_conn', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a connection to our HTTP server.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.headers', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.interactive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.webtest.WebCase.interactive', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Non-data property decorator.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.interface', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.interface', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return an IP address for a client connection.', '', "If the server is listening on '0.0.0.0' (INADDR_ANY)", "or '::' (IN6ADDR_ANY), this will return the proper localhost.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.test.webtest.WebCase.persistent', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.test.webtest.WebCase.persistent', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Presence of the persistent HTTP connection.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.scheme', 'http', {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.set_persistent', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(on=True, auto_open=False)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.set_persistent', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Make our HTTP_CONN persistent (or not).', '', "If the 'on' argument is True (the default), then self.HTTP_CONN", 'will be set to an instance of HTTP(S)?Connection', 'to persist across requests.', 'As this class only allows for a single open connection, if', 'self already has an open connection, it will be closed.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.ssl_context', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.status', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.test.webtest.WebCase.status_code', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.test.webtest.WebCase.status_code', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Integer HTTP status code.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.status_matches', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(expected)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.status_matches', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Check whether actual status matches expected.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.time', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.url', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest._open_url_once', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(url, headers=None, method='GET', body=None, host='127.0.0.1', port=8000, http_conn=, protocol='HTTP/1.1', ssl_context=None)", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest._open_url_once', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Open the given HTTP resource and return status, headers, and body.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.cleanHeaders', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(headers, method, body, host, port)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.cleanHeaders', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return request headers, with required headers added (if missing).', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.getchar', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.getchar', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Get a key press.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.interface', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(host)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.interface', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return an IP address for a client connection given the server host.', '', "If the server is listening on '0.0.0.0' (INADDR_ANY)", "or '::' (IN6ADDR_ANY), this will return the proper localhost.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.openURL', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(*args, raise_subcls=(), **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.openURL', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Open a URL, retrying when it fails.', '', 'Specify ``raise_subcls`` (class or tuple of classes) to exclude', 'those socket.error subclasses from being suppressed and retried.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.server_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(exc=None)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.server_error', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Server debug hook.', '', 'Return True if exception handled, False if ignored.', 'You probably want to wrap this, so you can still handle an error using', "your framework when it's ignored.", '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.shb', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(response)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.shb', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return status, headers, body the way we like from a response.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.strip_netloc', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(url)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.strip_netloc', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return absolute-URI path from URL.', '', 'Strip the scheme and host from the URL, returning the', 'server-absolute portion.', '', 'Useful for wrapping an absolute-URI for which only the', 'path is expected (such as in calls to :py:meth:`WebCase.getPage`).', '', '.. testsetup::', '', ' from cheroot.test.webtest import strip_netloc', '', ">>> strip_netloc('https://google.com/foo/bar?bing#baz')", "'/foo/bar?bing'", '', ">>> strip_netloc('//google.com/foo/bar?bing#baz')", "'/foo/bar?bing'", '', ">>> strip_netloc('/foo/bar?bing#baz')", "'/foo/bar?bing'", '']) [autodoc] output: .. py:module:: cheroot.test.webtest Extensions to unittest for web frameworks. Use the :py:meth:`WebCase.getPage` method to request a page from your HTTP server. Framework Integration ===================== If you have control over your server process, you can handle errors in the server-side of the HTTP conversation a bit better. You must run both the client (your :py:class:`WebCase` tests) and the server in the same process (but in separate threads, obviously). When an error occurs in the framework, call server_error. It will print the traceback to stdout, and keep any assertions you have from running (the assumption is that, if the server errors, the page output will not be of further significance to your tests). .. py:class:: NonDataProperty(fget) :module: cheroot.test.webtest Bases: :py:class:`object` Non-data property decorator. .. py:exception:: ServerError :module: cheroot.test.webtest Bases: :py:class:`Exception` Exception for signalling server error. .. py:attribute:: ServerError.on :module: cheroot.test.webtest :value: False .. py:class:: WebCase(methodName='runTest') :module: cheroot.test.webtest Bases: :py:class:`~unittest.case.TestCase` Helper web test suite base. .. py:attribute:: WebCase.HOST :module: cheroot.test.webtest :value: '127.0.0.1' .. py:attribute:: WebCase.HTTP_CONN :module: cheroot.test.webtest alias of :py:class:`~http.client.HTTPConnection` .. py:attribute:: WebCase.PORT :module: cheroot.test.webtest :value: 8000 .. py:attribute:: WebCase.PROTOCOL :module: cheroot.test.webtest :value: 'HTTP/1.1' .. py:property:: WebCase._Conn :module: cheroot.test.webtest Return HTTPConnection or HTTPSConnection based on self.scheme. * from :py:mod:`python:http.client`. .. py:attribute:: WebCase._classSetupFailed :module: cheroot.test.webtest :value: False .. py:attribute:: WebCase._class_cleanups :module: cheroot.test.webtest :value: [] .. py:method:: WebCase._handlewebError(msg) :module: cheroot.test.webtest .. py:method:: WebCase.assertBody(value, msg=None) :module: cheroot.test.webtest Fail if value != self.body. .. py:method:: WebCase.assertHeader(key, value=None, msg=None) :module: cheroot.test.webtest Fail if (key, [value]) not in self.headers. .. py:method:: WebCase.assertHeaderIn(key, values, msg=None) :module: cheroot.test.webtest Fail if header indicated by key doesn't have one of the values. .. py:method:: WebCase.assertHeaderItemValue(key, value, msg=None) :module: cheroot.test.webtest Fail if the header does not contain the specified value. .. py:method:: WebCase.assertInBody(value, msg=None) :module: cheroot.test.webtest Fail if value not in self.body. .. py:method:: WebCase.assertMatchesBody(pattern, msg=None, flags=0) :module: cheroot.test.webtest Fail if value (a regex pattern) is not in self.body. .. py:method:: WebCase.assertNoHeader(key, msg=None) :module: cheroot.test.webtest Fail if key in self.headers. .. py:method:: WebCase.assertNoHeaderItemValue(key, value, msg=None) :module: cheroot.test.webtest Fail if the header contains the specified value. .. py:method:: WebCase.assertNotInBody(value, msg=None) :module: cheroot.test.webtest Fail if value in self.body. .. py:method:: WebCase.assertStatus(status, msg=None) :module: cheroot.test.webtest Fail if self.status != status. status may be integer code, exact string status, or iterable of allowed possibilities. .. py:attribute:: WebCase.body :module: cheroot.test.webtest :value: None .. py:attribute:: WebCase.console_height :module: cheroot.test.webtest :value: 30 .. py:attribute:: WebCase.encoding :module: cheroot.test.webtest :value: 'utf-8' .. py:method:: WebCase.getPage(url, headers=None, method='GET', body=None, protocol=None, raise_subcls=()) :module: cheroot.test.webtest Open the url with debugging support. Return status, headers, body. url should be the identifier passed to the server, typically a server-absolute path and query string (sent between method and protocol), and should only be an absolute URI if proxy support is enabled in the server. If the application under test generates absolute URIs, be sure to wrap them first with :py:func:`strip_netloc`:: >>> class MyAppWebCase(WebCase): ... def getPage(url, *args, **kwargs): ... super(MyAppWebCase, self).getPage( ... cheroot.test.webtest.strip_netloc(url), ... *args, **kwargs ... ) ``raise_subcls`` is passed through to :py:func:`openURL`. .. py:method:: WebCase.get_conn(auto_open=False) :module: cheroot.test.webtest Return a connection to our HTTP server. .. py:attribute:: WebCase.headers :module: cheroot.test.webtest :value: None .. py:attribute:: WebCase.interactive :module: cheroot.test.webtest Non-data property decorator. .. py:method:: WebCase.interface() :module: cheroot.test.webtest Return an IP address for a client connection. If the server is listening on '0.0.0.0' (INADDR_ANY) or '::' (IN6ADDR_ANY), this will return the proper localhost. .. py:property:: WebCase.persistent :module: cheroot.test.webtest Presence of the persistent HTTP connection. .. py:attribute:: WebCase.scheme :module: cheroot.test.webtest :value: 'http' .. py:method:: WebCase.set_persistent(on=True, auto_open=False) :module: cheroot.test.webtest Make our HTTP_CONN persistent (or not). If the 'on' argument is True (the default), then self.HTTP_CONN will be set to an instance of HTTP(S)?Connection to persist across requests. As this class only allows for a single open connection, if self already has an open connection, it will be closed. .. py:attribute:: WebCase.ssl_context :module: cheroot.test.webtest :value: None .. py:attribute:: WebCase.status :module: cheroot.test.webtest :value: None .. py:property:: WebCase.status_code :module: cheroot.test.webtest Integer HTTP status code. .. py:method:: WebCase.status_matches(expected) :module: cheroot.test.webtest Check whether actual status matches expected. .. py:attribute:: WebCase.time :module: cheroot.test.webtest :value: None .. py:attribute:: WebCase.url :module: cheroot.test.webtest :value: None .. py:function:: _open_url_once(url, headers=None, method='GET', body=None, host='127.0.0.1', port=8000, http_conn=, protocol='HTTP/1.1', ssl_context=None) :module: cheroot.test.webtest Open the given HTTP resource and return status, headers, and body. .. py:function:: cleanHeaders(headers, method, body, host, port) :module: cheroot.test.webtest Return request headers, with required headers added (if missing). .. py:function:: getchar() :module: cheroot.test.webtest Get a key press. .. py:function:: interface(host) :module: cheroot.test.webtest Return an IP address for a client connection given the server host. If the server is listening on '0.0.0.0' (INADDR_ANY) or '::' (IN6ADDR_ANY), this will return the proper localhost. .. py:function:: openURL(*args, raise_subcls=(), **kwargs) :module: cheroot.test.webtest Open a URL, retrying when it fails. Specify ``raise_subcls`` (class or tuple of classes) to exclude those socket.error subclasses from being suppressed and retried. .. py:function:: server_error(exc=None) :module: cheroot.test.webtest Server debug hook. Return True if exception handled, False if ignored. You probably want to wrap this, so you can still handle an error using your framework when it's ignored. .. py:function:: shb(response) :module: cheroot.test.webtest Return status, headers, body the way we like from a response. .. py:function:: strip_netloc(url) :module: cheroot.test.webtest Return absolute-URI path from URL. Strip the scheme and host from the URL, returning the server-absolute portion. Useful for wrapping an absolute-URI for which only the path is expected (such as in calls to :py:meth:`WebCase.getPage`). .. testsetup:: from cheroot.test.webtest import strip_netloc >>> strip_netloc('https://google.com/foo/bar?bing#baz') '/foo/bar?bing' >>> strip_netloc('//google.com/foo/bar?bing#baz') '/foo/bar?bing' >>> strip_netloc('/foo/bar?bing#baz') '/foo/bar?bing' [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'exception', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', ...>) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', ) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/webtest.py:docstring of cheroot.test.webtest._open_url_once:1: syntax error in arglist ("url, headers=None, method='GET', body=None, host='127.0.0.1', port=8000, http_conn=, protocol='HTTP/1.1', ssl_context=None"): invalid syntax (, line 1) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', ) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.test.webtest.rst:2: section "cheroot.test.webtest module" gets labeled as "cheroot.test.webtest module" reading sources... [ 89%] pkg/cheroot.testing [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.testing') [app] emitting event: 'source-read'('pkg/cheroot.testing', ['cheroot.testing module\n======================\n\n.. automodule:: cheroot.testing\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.testing.rst:4: input: .. automodule:: cheroot.testing :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.testing [autodoc] import cheroot.testing => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.testing', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.testing', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Pytest fixtures and other helpers for doing testing by end-users.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV4', '0.0.0.0', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV6', '::', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'EPHEMERAL_PORT', 0, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'NO_INTERFACE', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_TestClient', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/testing.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Pytest fixtures and other helpers for doing testing by end-users.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/testing.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f460b53f590>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.testing', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.testing', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f460b53f590>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/testing.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_get_conn_data', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_probe_ipv6_sock', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'closing', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'config', {: {'bind_addr': (None, 0), 'wsgi_app': None}, : {'bind_addr': (None, 0), 'gateway': }}, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'contextmanager', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'get_server_client', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'native_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_native_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_wsgi_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'webtest', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.testing import _TestClient [autodoc] import cheroot.testing => [autodoc] getattr(_, '_TestClient') [autodoc] => [autodoc] from cheroot.testing import _get_conn_data [autodoc] import cheroot.testing => [autodoc] getattr(_, '_get_conn_data') [autodoc] => [autodoc] from cheroot.testing import _probe_ipv6_sock [autodoc] import cheroot.testing => [autodoc] getattr(_, '_probe_ipv6_sock') [autodoc] => [autodoc] from cheroot.testing import cheroot_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'cheroot_server') [autodoc] => [autodoc] from cheroot.testing import closing [autodoc] import cheroot.testing => [autodoc] getattr(_, 'closing') [autodoc] => [autodoc] from cheroot.testing import contextmanager [autodoc] import cheroot.testing => [autodoc] getattr(_, 'contextmanager') [autodoc] => [autodoc] from cheroot.testing import get_server_client [autodoc] import cheroot.testing => [autodoc] getattr(_, 'get_server_client') [autodoc] => [autodoc] from cheroot.testing import native_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'native_server') [autodoc] => [autodoc] from cheroot.testing import thread_and_native_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'thread_and_native_server') [autodoc] => [autodoc] from cheroot.testing import thread_and_wsgi_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'thread_and_wsgi_server') [autodoc] => [autodoc] from cheroot.testing import wsgi_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'wsgi_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.testing._TestClient', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.testing._TestClient', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.testing._TestClient', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.testing', '__firstlineno__': 102, '__init__': , 'get_connection': , 'request': , '__getattr__': , '__static_attributes__': ('_host', '_http_connection', '_interface', '_port', 'server_instance'), '__dict__': , '__weakref__': , '__doc__': None, '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 102, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__getattr__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.testing', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_host', '_http_connection', '_interface', '_port', 'server_instance'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_connection', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'request', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.testing import _TestClient.get_connection [autodoc] import cheroot.testing => [autodoc] getattr(_, '_TestClient') [autodoc] => [autodoc] getattr(_, 'get_connection') [autodoc] => [autodoc] from cheroot.testing import _TestClient.request [autodoc] import cheroot.testing => [autodoc] getattr(_, '_TestClient') [autodoc] => [autodoc] getattr(_, 'request') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.testing._TestClient.get_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.testing._TestClient.get_connection', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.testing._TestClient.request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, "(uri, method='GET', headers=None, http_conn=None, protocol='HTTP/1.1')", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.testing._TestClient.request', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing._get_conn_data', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing._get_conn_data', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing._probe_ipv6_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(interface)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing._probe_ipv6_sock', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.cheroot_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server_factory)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.cheroot_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up and tear down a Cheroot server instance.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.get_server_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.get_server_client', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create and return a test client for the given server.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.native_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(thread_and_native_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.native_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up and tear down a Cheroot HTTP server instance.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.thread_and_native_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.thread_and_native_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up and tear down a Cheroot HTTP server instance.', '', 'This emits a tuple of a thread and a server instance.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.thread_and_wsgi_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.thread_and_wsgi_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up and tear down a Cheroot WSGI server instance.', '', 'This emits a tuple of a thread and a server instance.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.wsgi_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(thread_and_wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.wsgi_server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up and tear down a Cheroot WSGI server instance.', '']) [autodoc] output: .. py:module:: cheroot.testing Pytest fixtures and other helpers for doing testing by end-users. .. py:class:: _TestClient(server) :module: cheroot.testing Bases: :py:class:`object` .. py:method:: _TestClient.get_connection() :module: cheroot.testing .. py:method:: _TestClient.request(uri, method='GET', headers=None, http_conn=None, protocol='HTTP/1.1') :module: cheroot.testing .. py:function:: _get_conn_data(bind_addr) :module: cheroot.testing .. py:function:: _probe_ipv6_sock(interface) :module: cheroot.testing .. py:function:: cheroot_server(server_factory) :module: cheroot.testing Set up and tear down a Cheroot server instance. .. py:function:: get_server_client(server) :module: cheroot.testing Create and return a test client for the given server. .. py:function:: native_server(thread_and_native_server) :module: cheroot.testing Set up and tear down a Cheroot HTTP server instance. .. py:function:: thread_and_native_server() :module: cheroot.testing Set up and tear down a Cheroot HTTP server instance. This emits a tuple of a thread and a server instance. .. py:function:: thread_and_wsgi_server() :module: cheroot.testing Set up and tear down a Cheroot WSGI server instance. This emits a tuple of a thread and a server instance. .. py:function:: wsgi_server(thread_and_wsgi_server) :module: cheroot.testing Set up and tear down a Cheroot WSGI server instance. [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'function', ) [app] emitting event: 'object-description-transform'('py', 'function', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.testing.rst:2: section "cheroot.testing module" gets labeled as "cheroot.testing module" reading sources... [ 92%] pkg/cheroot.workers [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.workers') [app] emitting event: 'source-read'('pkg/cheroot.workers', ['cheroot.workers package\n=======================\n\nSubmodules\n----------\n\n.. toctree::\n :maxdepth: 4\n\n cheroot.workers.threadpool\n\nModule contents\n---------------\n\n.. automodule:: cheroot.workers\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.workers.rst:15: input: .. automodule:: cheroot.workers :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.workers [autodoc] import cheroot.workers => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.workers', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.workers', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['HTTP workers pool.', '']) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/__pycache__/__init__.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'HTTP workers pool.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/__init__.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f94f0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.workers', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.workers', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers'], True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.workers', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f94f0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers']), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threadpool', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] output: .. py:module:: cheroot.workers HTTP workers pool. [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.workers.rst:2: section "cheroot.workers package" gets labeled as "cheroot.workers package" reading sources... [ 94%] pkg/cheroot.workers.threadpool [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.workers.threadpool') [app] emitting event: 'source-read'('pkg/cheroot.workers.threadpool', ['cheroot.workers.threadpool module\n=================================\n\n.. automodule:: cheroot.workers.threadpool\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.workers.threadpool.rst:4: input: .. automodule:: cheroot.workers.threadpool :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.workers.threadpool [autodoc] import cheroot.workers.threadpool => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.workers.threadpool', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.workers.threadpool', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A thread-based worker pool.', '', '.. spelling::', '', ' joinable', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ThreadPool', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'TrueyZero', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WorkerThread', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '_SHUTDOWNREQUEST', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__all__', ('ThreadPool', 'WorkerThread'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/__pycache__/threadpool.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'A thread-based worker pool.\n\n.. spelling::\n\n joinable\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/threadpool.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8fb0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.workers.threadpool', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.workers', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.workers.threadpool', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f8fb0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/threadpool.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'collections', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'pass_none', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'queue', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'time', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'trueyzero', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'warnings', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.workers.threadpool import ThreadPool [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] from cheroot.workers.threadpool import WorkerThread [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.workers.threadpool.ThreadPool', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server, min=10, max=-1, accepted_queue_size=-1, accepted_queue_timeout=10)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.workers.threadpool.ThreadPool', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.workers.threadpool.ThreadPool', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A Request Queue for an HTTPServer which pools threads.', '', 'ThreadPool objects must provide min, get(), put(obj), start()', 'and stop(timeout) attributes.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.workers.threadpool', '__firstlineno__': 225, '__doc__': 'A Request Queue for an HTTPServer which pools threads.\n\nThreadPool objects must provide min, get(), put(obj), start()\nand stop(timeout) attributes.\n', '__init__': , 'start': , 'idle': , 'put': , '_clear_dead_threads': , 'grow': , '_spawn_worker': , 'shrink': , 'stop': , '_force_close': )>, '_clear_threads': , 'qsize': , '__static_attributes__': ('_pending_shutdowns', '_queue', '_queue_put_timeout', '_threads', 'get', 'max', 'min', 'server'), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A Request Queue for an HTTPServer which pools threads.\n\nThreadPool objects must provide min, get(), put(obj), start()\nand stop(timeout) attributes.\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 225, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.workers.threadpool', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_pending_shutdowns', '_queue', '_queue_put_timeout', '_threads', 'get', 'max', 'min', 'server'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_clear_dead_threads', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_clear_threads', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_force_close', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_spawn_worker', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'grow', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'idle', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'put', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'qsize', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'shrink', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'start', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'stop', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.workers.threadpool import ThreadPool._clear_dead_threads [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, '_clear_dead_threads') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool._clear_threads [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, '_clear_threads') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool._force_close [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, '_force_close') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool._spawn_worker [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, '_spawn_worker') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool.grow [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'grow') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool.idle [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'idle') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool.put [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'put') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool.qsize [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'qsize') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool.shrink [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'shrink') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool.start [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'start') [autodoc] => [autodoc] from cheroot.workers.threadpool import ThreadPool.stop [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'stop') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._clear_dead_threads', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._clear_dead_threads', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._clear_threads', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._clear_threads', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Clear self._threads and yield all joinable threads.', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._force_close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._force_close', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._spawn_worker', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._spawn_worker', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.grow', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(amount)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.grow', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Spawn new worker threads (not above self.max).', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.workers.threadpool.ThreadPool.idle', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.workers.threadpool.ThreadPool.idle', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Number of worker threads which are idle. Read-only.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.put', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(obj)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.put', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Put request into queue.', '', 'Args:', ' obj (:py:class:`~cheroot.server.HTTPConnection`): HTTP connection', ' waiting to be processed', '']) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.workers.threadpool.ThreadPool.qsize', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.workers.threadpool.ThreadPool.qsize', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return the queue size.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.shrink', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(amount)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.shrink', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Kill off worker threads (not below self.min).', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.start', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.start', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Start the pool of threads.', '', ':raises RuntimeError: if the pool is already started', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.stop', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(timeout=5)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.stop', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Terminate all worker threads.', '', 'Args:', ' timeout (int): time to wait for threads to stop gracefully', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.workers.threadpool.WorkerThread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(server)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.workers.threadpool.WorkerThread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.workers.threadpool.WorkerThread', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Thread which continuously polls a Queue for Connection objects.', '', 'Due to the timing issues of polling a Queue, a WorkerThread does not', "check its own 'ready' flag after it has started. To stop the thread,", 'it is necessary to stick a _SHUTDOWNREQUEST object onto the Queue', '(one for each running WorkerThread).', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', "Thread which continuously polls a Queue for Connection objects.\n\nDue to the timing issues of polling a Queue, a WorkerThread does not\ncheck its own 'ready' flag after it has started. To stop the thread,\nit is necessary to stick a _SHUTDOWNREQUEST object onto the Queue\n(one for each running WorkerThread).\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 38, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.workers.threadpool', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bytes_read', 'bytes_written', 'conn', 'ready', 'requests_seen', 'server', 'start_time', 'stats', 'work_time'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_process_connections_until_interrupted', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'conn', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'ready', False, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'run', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'server', None, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.workers.threadpool import WorkerThread._process_connections_until_interrupted [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, '_process_connections_until_interrupted') [autodoc] => [autodoc] from cheroot.workers.threadpool import WorkerThread.conn [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, 'conn') [autodoc] => None [autodoc] from cheroot.workers.threadpool import WorkerThread.ready [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, 'ready') [autodoc] => False [autodoc] from cheroot.workers.threadpool import WorkerThread.run [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, 'run') [autodoc] => [autodoc] from cheroot.workers.threadpool import WorkerThread.server [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, 'server') [autodoc] => None [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.WorkerThread._process_connections_until_interrupted', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.WorkerThread._process_connections_until_interrupted', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Process incoming HTTP connections in an infinite loop.', '', 'Retrieves incoming connections from thread pool, processing', 'them one by one.', '', ':raises SystemExit: on the internal requests to stop the', ' server instance', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.workers.threadpool.WorkerThread.conn', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.workers.threadpool.WorkerThread.conn', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The current connection pulled off the Queue, or None.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.workers.threadpool.WorkerThread.ready', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.workers.threadpool.WorkerThread.ready', False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A simple flag for the calling server to know when this thread', 'has begun polling the Queue.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.WorkerThread.run', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.WorkerThread.run', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set up incoming HTTP connection processing loop.', '', "This is the thread's entry-point. It performs lop-layer", 'exception handling and interrupt processing.', ':exc:`KeyboardInterrupt` and :exc:`SystemExit` bubbling up', 'from the inner-layer code constitute a global server interrupt', 'request. When they happen, the worker thread exits.', '', ':raises BaseException: when an unexpected non-interrupt', ' exception leaks from the inner layers', '', '# noqa: DAR401 KeyboardInterrupt SystemExit', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.workers.threadpool.WorkerThread.server', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.workers.threadpool.WorkerThread.server', None, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The HTTP Server which spawned this thread, and which owns the', 'Queue and is placing active connections into it.', '']) [autodoc] output: .. py:module:: cheroot.workers.threadpool A thread-based worker pool. .. spelling:: joinable .. py:class:: ThreadPool(server, min=10, max=-1, accepted_queue_size=-1, accepted_queue_timeout=10) :module: cheroot.workers.threadpool Bases: :py:class:`object` A Request Queue for an HTTPServer which pools threads. ThreadPool objects must provide min, get(), put(obj), start() and stop(timeout) attributes. .. py:method:: ThreadPool._clear_dead_threads() :module: cheroot.workers.threadpool .. py:method:: ThreadPool._clear_threads() :module: cheroot.workers.threadpool Clear self._threads and yield all joinable threads. .. py:method:: ThreadPool._force_close(conn) :module: cheroot.workers.threadpool :staticmethod: .. py:method:: ThreadPool._spawn_worker() :module: cheroot.workers.threadpool .. py:method:: ThreadPool.grow(amount) :module: cheroot.workers.threadpool Spawn new worker threads (not above self.max). .. py:property:: ThreadPool.idle :module: cheroot.workers.threadpool Number of worker threads which are idle. Read-only. .. py:method:: ThreadPool.put(obj) :module: cheroot.workers.threadpool Put request into queue. Args: obj (:py:class:`~cheroot.server.HTTPConnection`): HTTP connection waiting to be processed .. py:property:: ThreadPool.qsize :module: cheroot.workers.threadpool Return the queue size. .. py:method:: ThreadPool.shrink(amount) :module: cheroot.workers.threadpool Kill off worker threads (not below self.min). .. py:method:: ThreadPool.start() :module: cheroot.workers.threadpool Start the pool of threads. :raises RuntimeError: if the pool is already started .. py:method:: ThreadPool.stop(timeout=5) :module: cheroot.workers.threadpool Terminate all worker threads. Args: timeout (int): time to wait for threads to stop gracefully .. py:class:: WorkerThread(server) :module: cheroot.workers.threadpool Bases: :py:class:`~threading.Thread` Thread which continuously polls a Queue for Connection objects. Due to the timing issues of polling a Queue, a WorkerThread does not check its own 'ready' flag after it has started. To stop the thread, it is necessary to stick a _SHUTDOWNREQUEST object onto the Queue (one for each running WorkerThread). .. py:method:: WorkerThread._process_connections_until_interrupted() :module: cheroot.workers.threadpool Process incoming HTTP connections in an infinite loop. Retrieves incoming connections from thread pool, processing them one by one. :raises SystemExit: on the internal requests to stop the server instance .. py:attribute:: WorkerThread.conn :module: cheroot.workers.threadpool :value: None The current connection pulled off the Queue, or None. .. py:attribute:: WorkerThread.ready :module: cheroot.workers.threadpool :value: False A simple flag for the calling server to know when this thread has begun polling the Queue. .. py:method:: WorkerThread.run() :module: cheroot.workers.threadpool Set up incoming HTTP connection processing loop. This is the thread's entry-point. It performs lop-layer exception handling and interrupt processing. :exc:`KeyboardInterrupt` and :exc:`SystemExit` bubbling up from the inner-layer code constitute a global server interrupt request. When they happen, the worker thread exits. :raises BaseException: when an unexpected non-interrupt exception leaks from the inner layers # noqa: DAR401 KeyboardInterrupt SystemExit .. py:attribute:: WorkerThread.server :module: cheroot.workers.threadpool :value: None The HTTP Server which spawned this thread, and which owns the Queue and is placing active connections into it. [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Args: [i18n] PATCH: 'docutils.nodes.term' to have rawsource: obj (>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.workers.threadpool.rst:2: section "cheroot.workers.threadpool module" gets labeled as "cheroot.workers.threadpool module" /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/threadpool.py:docstring of cheroot.workers.threadpool:1: (INFO/1) No directive entry for “spelling” in module “docutils.parsers.rst.languages.en”. Trying “spelling” as canonical directive name. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/threadpool.py:docstring of cheroot.workers.threadpool:3: (ERROR/3) Unknown directive type “spelling”. .. spelling:: joinable [filtered system message] reading sources... [ 97%] pkg/cheroot.wsgi [app] emitting event: 'env-purge-doc'(, 'pkg/cheroot.wsgi') [app] emitting event: 'source-read'('pkg/cheroot.wsgi', ['cheroot.wsgi module\n===================\n\n.. automodule:: cheroot.wsgi\n :members:\n :private-members:\n :show-inheritance:\n :undoc-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.wsgi.rst:4: input: .. automodule:: cheroot.wsgi :members: :private-members: :show-inheritance: :undoc-members: [autodoc] import cheroot.wsgi [autodoc] import cheroot.wsgi => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.wsgi', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.wsgi', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['This class holds Cheroot WSGI server implementation.', '', 'Simplest example on how to use this server::', '', ' from cheroot import wsgi', '', ' def my_crazy_app(environ, start_response):', " status = '200 OK'", " response_headers = [('Content-type','text/plain')]", ' start_response(status, response_headers)', " return [b'Hello world!']", '', " addr = '0.0.0.0', 8070", ' server = wsgi.Server(addr, my_crazy_app)', ' server.start()', '', 'The Cheroot WSGI server can serve as many WSGI applications', 'as you want in one instance by using a PathInfoDispatcher::', '', ' path_map = {', " '/': my_crazy_app,", " '/blog': my_blog_app,", ' }', ' d = wsgi.PathInfoDispatcher(path_map)', ' server = wsgi.Server(addr, d)', '']) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway_10', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway_u0', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'PathInfoDispatcher', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'Server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIGateway', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIGateway_10', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIGateway_u0', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIPathInfoDispatcher', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIServer', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='builtins', loader=, origin='built-in'), '__build_class__': , '__import__': , 'abs': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'aiter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'anext': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': , 'memoryview': , 'bytearray': , 'bytes': , 'classmethod': , 'complex': , 'dict': , 'enumerate': , 'filter': , 'float': , 'frozenset': , 'property': , 'int': , 'list': , 'map': , 'object': , 'range': , 'reversed': , 'set': , 'slice': , 'staticmethod': , 'str': , 'super': , 'tuple': , 'type': , 'zip': , '__debug__': True, 'BaseException': , 'BaseExceptionGroup': , 'Exception': , 'GeneratorExit': , 'KeyboardInterrupt': , 'SystemExit': , 'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BufferError': , 'EOFError': , 'ImportError': , 'LookupError': , 'MemoryError': , 'NameError': , 'OSError': , 'ReferenceError': , 'RuntimeError': , 'StopAsyncIteration': , 'StopIteration': , 'SyntaxError': , 'SystemError': , 'TypeError': , 'ValueError': , 'Warning': , 'FloatingPointError': , 'OverflowError': , 'ZeroDivisionError': , 'BytesWarning': , 'DeprecationWarning': , 'EncodingWarning': , 'FutureWarning': , 'ImportWarning': , 'PendingDeprecationWarning': , 'ResourceWarning': , 'RuntimeWarning': , 'SyntaxWarning': , 'UnicodeWarning': , 'UserWarning': , 'BlockingIOError': , 'ChildProcessError': , 'ConnectionError': , 'FileExistsError': , 'FileNotFoundError': , 'InterruptedError': , 'IsADirectoryError': , 'NotADirectoryError': , 'PermissionError': , 'ProcessLookupError': , 'TimeoutError': , 'IndentationError': , '_IncompleteInputError': , 'IndexError': , 'KeyError': , 'ModuleNotFoundError': , 'NotImplementedError': , 'PythonFinalizationError': , 'RecursionError': , 'UnboundLocalError': , 'UnicodeError': , 'BrokenPipeError': , 'ConnectionAbortedError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'TabError': , 'UnicodeDecodeError': , 'UnicodeEncodeError': , 'UnicodeTranslateError': , 'ExceptionGroup': , 'EnvironmentError': , 'IOError': , 'open': , 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EOF) to exit, 'copyright': Copyright (c) 2001 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software Foundation, and a cast of thousands for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/__pycache__/wsgi.cpython-314.pyc', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', "This class holds Cheroot WSGI server implementation.\n\nSimplest example on how to use this server::\n\n from cheroot import wsgi\n\n def my_crazy_app(environ, start_response):\n status = '200 OK'\n response_headers = [('Content-type','text/plain')]\n start_response(status, response_headers)\n return [b'Hello world!']\n\n addr = '0.0.0.0', 8070\n server = wsgi.Server(addr, my_crazy_app)\n server.start()\n\nThe Cheroot WSGI server can serve as many WSGI applications\nas you want in one instance by using a PathInfoDispatcher::\n\n path_map = {\n '/': my_crazy_app,\n '/blog': my_blog_app,\n }\n d = wsgi.PathInfoDispatcher(path_map)\n server = wsgi.Server(addr, d)\n", True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/wsgi.py', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7f46228f83b0>, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.wsgi', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.wsgi', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f46228f83b0>, origin='/builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/wsgi.py'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'server', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'threadpool', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_gateways', {(1, 0): }, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.wsgi import Gateway [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] from cheroot.wsgi import Gateway_10 [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_10') [autodoc] => [autodoc] from cheroot.wsgi import Gateway_u0 [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_u0') [autodoc] => [autodoc] from cheroot.wsgi import PathInfoDispatcher [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'PathInfoDispatcher') [autodoc] => [autodoc] from cheroot.wsgi import Server [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Server') [autodoc] => [autodoc] from cheroot.wsgi import WSGIGateway [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'WSGIGateway') [autodoc] => [autodoc] from cheroot.wsgi import WSGIGateway_10 [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'WSGIGateway_10') [autodoc] => [autodoc] from cheroot.wsgi import WSGIGateway_u0 [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'WSGIGateway_u0') [autodoc] => [autodoc] from cheroot.wsgi import WSGIPathInfoDispatcher [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'WSGIPathInfoDispatcher') [autodoc] => [autodoc] from cheroot.wsgi import WSGIServer [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'WSGIServer') [autodoc] => [autodoc] from cheroot.wsgi import bton [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'bton') [autodoc] => [autodoc] from cheroot.wsgi import ntob [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'ntob') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Gateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.Gateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Gateway', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A base class to interface HTTPServer with WSGI.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A base class to interface HTTPServer with WSGI.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 107, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('env', 'remaining_bytes_out', 'started_response'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '_encode_status', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'gateway_map', >, False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'start_response', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.wsgi import Gateway._encode_status [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, '_encode_status') [autodoc] => [autodoc] from cheroot.wsgi import Gateway.gateway_map [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'gateway_map') [autodoc] => > [autodoc] from cheroot.wsgi import Gateway.get_environ [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [autodoc] from cheroot.wsgi import Gateway.respond [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [autodoc] from cheroot.wsgi import Gateway.start_response [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'start_response') [autodoc] => [autodoc] from cheroot.wsgi import Gateway.write [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway._encode_status', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(status)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway._encode_status', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Cast status to bytes representation of current Python version.', '', 'According to :pep:`3333`, when using Python 3, the response status', 'and headers must be bytes masquerading as Unicode; that is, they', 'must be of type "str" but are restricted to code points in the', '"Latin-1" set.', '']) [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.gateway_map', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.gateway_map', >, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Create a mapping of gateways and their versions.', '', 'Returns:', ' dict[tuple[int,int],class]: map of gateway version and', ' corresponding class', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a new environ dict targeting the given wsgi.version.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.respond', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Process the current request.', '', 'From :pep:`333`:', '', ' The start_response callable must not actually transmit', ' the response headers. Instead, it must store them for the', ' server or gateway to transmit only after the first', ' iteration of the application return value that yields', " a NON-EMPTY string, or upon the application's first", ' invocation of the write() callable.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.start_response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(status, headers, exc_info=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.start_response', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['WSGI callable to begin the HTTP response.', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(chunk)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.write', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['WSGI callable to write unbuffered data to the client.', '', 'This method is also used internally by start_response (to write', 'data from the iterable returned by the WSGI application).', '']) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Gateway_10', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.Gateway_10', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Gateway_10', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A Gateway class to interface HTTPServer with WSGI 1.0.x.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A Gateway class to interface HTTPServer with WSGI 1.0.x.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 244, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'version', (1, 0), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.wsgi import Gateway_10.get_environ [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_10') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [autodoc] from cheroot.wsgi import Gateway_10.version [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_10') [autodoc] => [autodoc] getattr(_, 'version') [autodoc] => (1, 0) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway_10.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway_10.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a new environ dict targeting the given wsgi.version.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.wsgi.Gateway_10.version', (1, 0), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Gateway_u0', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.Gateway_u0', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Gateway_u0', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A Gateway class to interface HTTPServer with WSGI u.0.', '', 'WSGI u.0 is an experimental protocol, which uses Unicode for keys', 'and values in both Python 2 and Python 3.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A Gateway class to interface HTTPServer with WSGI u.0.\n\nWSGI u.0 is an experimental protocol, which uses Unicode for keys\nand values in both Python 2 and Python 3.\n', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 326, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'version', ('u', 0), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.wsgi import Gateway_u0.get_environ [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_u0') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [autodoc] from cheroot.wsgi import Gateway_u0.version [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_u0') [autodoc] => [autodoc] getattr(_, 'version') [autodoc] => ('u', 0) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway_u0.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway_u0.get_environ', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Return a new environ dict targeting the given wsgi.version.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.wsgi.Gateway_u0.version', ('u', 0), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.PathInfoDispatcher', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(apps)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.PathInfoDispatcher', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.PathInfoDispatcher', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A WSGI dispatcher for dispatch based on the PATH_INFO.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.wsgi', '__firstlineno__': 360, '__doc__': 'A WSGI dispatcher for dispatch based on the PATH_INFO.', '__init__': , '__call__': , '__static_attributes__': ('apps',), '__dict__': , '__weakref__': , '__annotate_func__': None, '__annotations_cache__': {}}), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A WSGI dispatcher for dispatch based on the PATH_INFO.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 360, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('apps',), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '(bind_addr, wsgi_app, numthreads=10, server_name=None, max=-1, request_queue_size=5, timeout=10, shutdown_timeout=5, accepted_queue_size=-1, accepted_queue_timeout=10, peercreds_enabled=False, peercreds_resolve_enabled=False, reuse_port=False)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.Server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Server', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['A subclass of HTTPServer which calls a WSGI application.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotate_func__', None, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__annotations_cache__', {}, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A subclass of HTTPServer which calls a WSGI application.', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 36, True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('request_queue_size', 'requests', 'shutdown_timeout', 'timeout', 'wsgi_app'), True, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'numthreads', , False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [app] emitting event: 'autodoc-skip-member'('class', 'wsgi_version', (1, 0), False, {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}) [autodoc] from cheroot.wsgi import Server.numthreads [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Server') [autodoc] => [autodoc] getattr(_, 'numthreads') [autodoc] => [autodoc] from cheroot.wsgi import Server.wsgi_version [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Server') [autodoc] => [autodoc] getattr(_, 'wsgi_version') [autodoc] => (1, 0) [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.wsgi.Server.numthreads', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.wsgi.Server.numthreads', , {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['Set minimum number of threads.', '']) [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.wsgi.Server.wsgi_version', (1, 0), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.wsgi.Server.wsgi_version', (1, 0), {'members': , 'private-members': , 'show-inheritance': True, 'undoc-members': True}, ['The version of WSGI to produce.', '']) [autodoc] output: .. py:module:: cheroot.wsgi This class holds Cheroot WSGI server implementation. Simplest example on how to use this server:: from cheroot import wsgi def my_crazy_app(environ, start_response): status = '200 OK' response_headers = [('Content-type','text/plain')] start_response(status, response_headers) return [b'Hello world!'] addr = '0.0.0.0', 8070 server = wsgi.Server(addr, my_crazy_app) server.start() The Cheroot WSGI server can serve as many WSGI applications as you want in one instance by using a PathInfoDispatcher:: path_map = { '/': my_crazy_app, '/blog': my_blog_app, } d = wsgi.PathInfoDispatcher(path_map) server = wsgi.Server(addr, d) .. py:class:: Gateway(req) :module: cheroot.wsgi Bases: :py:class:`~cheroot.server.Gateway` A base class to interface HTTPServer with WSGI. .. py:method:: Gateway._encode_status(status) :module: cheroot.wsgi :staticmethod: Cast status to bytes representation of current Python version. According to :pep:`3333`, when using Python 3, the response status and headers must be bytes masquerading as Unicode; that is, they must be of type "str" but are restricted to code points in the "Latin-1" set. .. py:method:: Gateway.gateway_map() :module: cheroot.wsgi :classmethod: Create a mapping of gateways and their versions. Returns: dict[tuple[int,int],class]: map of gateway version and corresponding class .. py:method:: Gateway.get_environ() :module: cheroot.wsgi Return a new environ dict targeting the given wsgi.version. .. py:method:: Gateway.respond() :module: cheroot.wsgi Process the current request. From :pep:`333`: The start_response callable must not actually transmit the response headers. Instead, it must store them for the server or gateway to transmit only after the first iteration of the application return value that yields a NON-EMPTY string, or upon the application's first invocation of the write() callable. .. py:method:: Gateway.start_response(status, headers, exc_info=None) :module: cheroot.wsgi WSGI callable to begin the HTTP response. .. py:method:: Gateway.write(chunk) :module: cheroot.wsgi WSGI callable to write unbuffered data to the client. This method is also used internally by start_response (to write data from the iterable returned by the WSGI application). .. py:class:: Gateway_10(req) :module: cheroot.wsgi Bases: :py:class:`~cheroot.wsgi.Gateway` A Gateway class to interface HTTPServer with WSGI 1.0.x. .. py:method:: Gateway_10.get_environ() :module: cheroot.wsgi Return a new environ dict targeting the given wsgi.version. .. py:attribute:: Gateway_10.version :module: cheroot.wsgi :value: (1, 0) .. py:class:: Gateway_u0(req) :module: cheroot.wsgi Bases: :py:class:`~cheroot.wsgi.Gateway_10` A Gateway class to interface HTTPServer with WSGI u.0. WSGI u.0 is an experimental protocol, which uses Unicode for keys and values in both Python 2 and Python 3. .. py:method:: Gateway_u0.get_environ() :module: cheroot.wsgi Return a new environ dict targeting the given wsgi.version. .. py:attribute:: Gateway_u0.version :module: cheroot.wsgi :value: ('u', 0) .. py:class:: PathInfoDispatcher(apps) :module: cheroot.wsgi Bases: :py:class:`object` A WSGI dispatcher for dispatch based on the PATH_INFO. .. py:class:: Server(bind_addr, wsgi_app, numthreads=10, server_name=None, max=-1, request_queue_size=5, timeout=10, shutdown_timeout=5, accepted_queue_size=-1, accepted_queue_timeout=10, peercreds_enabled=False, peercreds_resolve_enabled=False, reuse_port=False) :module: cheroot.wsgi Bases: :py:class:`~cheroot.server.HTTPServer` A subclass of HTTPServer which calls a WSGI application. .. py:property:: Server.numthreads :module: cheroot.wsgi Set minimum number of threads. .. py:attribute:: Server.wsgi_version :module: cheroot.wsgi :value: (1, 0) The version of WSGI to produce. .. py:attribute:: WSGIGateway :module: cheroot.wsgi alias of :py:class:`~cheroot.wsgi.Gateway` .. py:attribute:: WSGIGateway_10 :module: cheroot.wsgi alias of :py:class:`~cheroot.wsgi.Gateway_10` .. py:attribute:: WSGIGateway_u0 :module: cheroot.wsgi alias of :py:class:`~cheroot.wsgi.Gateway_u0` .. py:attribute:: WSGIPathInfoDispatcher :module: cheroot.wsgi alias of :py:class:`~cheroot.wsgi.PathInfoDispatcher` .. py:attribute:: WSGIServer :module: cheroot.wsgi alias of :py:class:`~cheroot.wsgi.Server` [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', ) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'property', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Returns: [i18n] PATCH: 'docutils.nodes.term' to have rawsource: dict[tuple[int,int],class]: map of gateway version and [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/cheroot.wsgi.rst:2: section "cheroot.wsgi module" gets labeled as "cheroot.wsgi module" reading sources... [100%] pkg/modules [app] emitting event: 'env-purge-doc'(, 'pkg/modules') [app] emitting event: 'source-read'('pkg/modules', ['cheroot\n=======\n\n.. toctree::\n :maxdepth: 4\n\n cheroot\n']) [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/pkg/modules.rst:2: section "cheroot" gets labeled as "cheroot" [app] emitting event: 'env-updated'(,) .github/CONTRIBUTING.rst:3: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/contributing/release_guide.rst:5: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/contributing/release_guide.rst:7: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/contributing/release_guide.rst:79: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:3: ERROR: Unknown directive type "spelling". .. spelling:: reproducibility [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/history.rst:16: ERROR: Unknown directive type "towncrier-draft-entries". .. towncrier-draft-entries:: |version| :sub:`/UNRELEASED DRAFT/` [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/cli.py:docstring of cheroot.cli:25: ERROR: Unknown directive type "spelling". .. spelling:: cli [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:47: ERROR: Unknown directive type "spelling". .. spelling:: pyopenssl [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_cli.py:docstring of cheroot.test.test_cli:3: ERROR: Unknown directive type "spelling". .. spelling:: cli [docutils] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/threadpool.py:docstring of cheroot.workers.threadpool:3: ERROR: Unknown directive type "spelling". .. spelling:: joinable [docutils] looking for now-outdated files... [app] emitting event: 'env-get-updated'(,) none found pickling environment... done checking consistency... [app] emitting event: 'env-check-consistency'(,) done [app] emitting event: 'write-started'(,) docnames to write: contributing/guidelines, contributing/release_guide, devguide, history, index, pkg/cheroot, pkg/cheroot.__main__, pkg/cheroot._compat, pkg/cheroot.cli, pkg/cheroot.connections, pkg/cheroot.errors, pkg/cheroot.makefile, pkg/cheroot.server, pkg/cheroot.ssl, pkg/cheroot.ssl.builtin, pkg/cheroot.ssl.pyopenssl, pkg/cheroot.test, pkg/cheroot.test._pytest_plugin, pkg/cheroot.test.conftest, pkg/cheroot.test.helper, pkg/cheroot.test.test__compat, pkg/cheroot.test.test_cli, pkg/cheroot.test.test_conn, pkg/cheroot.test.test_core, pkg/cheroot.test.test_dispatch, pkg/cheroot.test.test_errors, pkg/cheroot.test.test_makefile, pkg/cheroot.test.test_server, pkg/cheroot.test.test_ssl, pkg/cheroot.test.test_wsgi, pkg/cheroot.test.webtest, pkg/cheroot.testing, pkg/cheroot.workers, pkg/cheroot.workers.threadpool, pkg/cheroot.wsgi, pkg/modules preparing documents... done copying assets... copying static files... Writing evaluated template result to /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/html/_static/language_data.js Writing evaluated template result to /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/html/_static/documentation_options.js Writing evaluated template result to /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/html/_static/basic.css Writing evaluated template result to /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/html/_static/alabaster.css copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 3%] contributing/guidelines [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(None, >) [app] emitting event: 'doctree-resolved'(>, 'contributing/guidelines') [app] emitting event: 'html-page-context'('contributing/guidelines', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('contributing/release_guide', 'Release Guide', 'N', 'next'), ('history', 'Change log', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'contributing/guidelines', 'current_page_name': 'contributing/guidelines', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460ab24f60>, 'hasdoc': .hasdoc at 0x7f460ab25010>, 'toctree': . at 0x7f460ab250c0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': '../history.html', 'title': 'Change log'}, 'next': {'link': 'release_guide.html', 'title': 'Release Guide'}, 'title': 'Contributing to |project|', 'meta': None, 'body': '
\n

Contributing to |project|

\n

Make sure you read the README.\nAlso ensure you set up pre-commit utility correctly and\ntests pass in GitHub Actions CI/CD workflows.

\n
\n

Submitting Pull Requests

\n

If you’re changing the structure of the repository please create an issue\nfirst. Don’t forget to write appropriate test cases, add them into CI process\nif applicable and make the GitHub Actions CI/CD build pass.

\n

Sync (preferably rebase) your feature branch with upstream regularly to make\nus able to merge your PR seamlessly.

\n
\n
\n

Submitting bug reports

\n

Make sure you are on latest changes and that you re-ran this command tox\nafter updating your local repository. If you can, please provide more\ninformation about your environment such as browser, operating system,\npython version, and any other related software versions. It is also helpful to\npost a markdown snippet demonstrating minimum reproducible example of an issue.

\n
\n
\n

Also

\n

See Contributing in\nthe CherryPy docs.

\n
\n

First-time setup

\n\n
    \n
  1. Please, identify yourself:

    \n
    $ git config --global user.name "firstname lastname"\n$ git config --global user.email yourname@example.com\n
    \n
    \n
  2. \n
\n
    \n
  • Use the address bound to your GitHub account so that the commits would be linked to your profile.

  • \n
\n
    \n
  1. Choose an editor for Git:

    \n
    $ git config --global core.editor vim\n
    \n
    \n
  2. \n
\n
    \n
  • Create and log in to a GitHub account

  • \n
  • Fork Cheroot to your GitHub account by clicking the Fork button

  • \n
  • Clone your fork locally:

    \n
    $ git clone https://github.com/{username}/cheroot\n$ cd cheroot\n
    \n
    \n
  • \n
\n
    \n
  • Also, you can clone fork using ssh:

    \n
    $ git clone git@github.com:{username}/cheroot.git\n$ cd cheroot\n
    \n
    \n
  • \n
\n
    \n
  • To create a new branch and switch to it:

    \n
    $ git checkout -b patch/some_fix\n
    \n
    \n
  • \n
\n
\n
\n

Write your code

\n\n\n
\n
\n

Building the docs

\n

To build the docs from a checked out source, run:

\n
$ tox -e build-docs\n
\n
\n

Open the documentation:

\n
\n
$ xdg-open build/html/index.html\n
\n
\n
\n

Also, one can serve docs using a built-in static files server.\nThis is preferable because of possible CSRF issues.:

\n
$ python3 -m http.server --directory build/html/ 8000\n
\n
\n

After that, you can open http://localhost:8000/ in your browser.

\n

Read more about Sphinx.

\n
\n
\n
\n

Adding change notes with your PRs

\n

It is very important to maintain a log for news of how\nupdating to the new version of the software will affect\nend-users. This is why we enforce collection of the change\nfragment files in pull requests as per Towncrier philosophy.

\n

The idea is that when somebody makes a change, they must record\nthe bits that would affect end-users only including information\nthat would be useful to them. Then, when the maintainers publish\na new release, they’ll automatically use these records to compose\na change log for the respective version. It is important to\nunderstand that including unnecessary low-level implementation\nrelated details generates noise that is not particularly useful\nto the end-users most of the time. And so such details should be\nrecorded in the Git history rather than a change log.

\n
\n
\n

Alright! So how do I add a news fragment?

\n

Cheroot uses towncrier\nfor change log management.\nTo submit a change note about your PR, add a text file into the\ndocs/changelog-fragments.d/ folder. It should contain an\nexplanation of what applying this PR will change in the way\nend-users interact with the project. One sentence is usually\nenough but feel free to add as many details as you feel necessary\nfor the users to understand what it means.

\n

Use the past tense for the text in your fragment because,\ncombined with others, it will be a part of the “news digest”\ntelling the readers what changed in a specific version of\nthe library since the previous version. You should also use\nreStructuredText syntax for highlighting code (inline or block),\nlinking parts of the docs or external sites.\nHowever, you do not need to reference the issue or PR numbers here\nas towncrier will automatically add a reference to all of the\naffected issues when rendering the news file.\nIf you wish to sign your change, feel free to add -- by\n:user:`github-username` at the end (replace github-username\nwith your own!).

\n

Finally, name your file following the convention that Towncrier\nunderstands: it should start with the number of an issue or a\nPR followed by a dot, then add a patch type, like feature,\ndoc, contrib etc., and add .rst as a suffix. If you\nneed to add more than one fragment, you may add an optional\nsequence number (delimited with another period) between the type\nand the suffix.

\n

In general the name will follow <pr_number>.<category>.rst pattern,\nwhere the categories are:

\n
    \n
  • bugfix: A bug fix for something we deemed an improper undesired\nbehavior that got corrected in the release to match pre-agreed\nexpectations.

  • \n
  • feature: A new behavior, public APIs. That sort of stuff.

  • \n
  • deprecation: A declaration of future API removals and breaking\nchanges in behavior.

  • \n
  • breaking: When something public gets removed in a breaking way.\nCould be deprecated in an earlier release.

  • \n
  • doc: Notable updates to the documentation structure or build\nprocess.

  • \n
  • packaging: Notes for downstreams about unobvious side effects\nand tooling. Changes in the test invocation considerations and\nruntime assumptions.

  • \n
  • contrib: Stuff that affects the contributor experience. e.g.\nRunning tests, building the docs, setting up the development\nenvironment.

  • \n
  • misc: Changes that are hard to assign to any of the above\ncategories.

  • \n
\n

A pull request may have more than one of these components, for example\na code change may introduce a new feature that deprecates an old\nfeature, in which case two fragments should be added. It is not\nnecessary to make a separate documentation fragment for documentation\nchanges accompanying the relevant code changes.

\n
\n
\n

Examples for adding change log entries to your Pull Requests

\n

File docs/changelog-fragments.d/77.doc.rst:

\n
Fixed a WSGI documentation example to support Python 3\n-- by :user:`jaymcgrath`.\n
\n
\n

File docs/changelog-fragments.d/384.feature.rst (could be symlinked\nto docs/changelog-fragments.d/384.doc.rst so it shows up in several\nchange log sections, and to docs/changelog-fragments.d/385.feature.rst\nand docs/changelog-fragments.d/406.feature.rst referencing several\npull requests at once):

\n
Exposed type stubs with annotations for public API -- by :user:`kasium`.\n
\n
\n

File docs/changelog-fragments.d/359.bugfix.rst:

\n
Fixed a regression from :pr:`199` that made the worker threads exit on\ninvalid connection attempts and could make the whole server unresponsive\nonce there was no workers left -- by :user:`cameronbrunner`.\n
\n
\n
\n

Tip

\n

See towncrier.toml for all available categories\n(tool.towncrier.type).

\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'contributing/guidelines.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460ab25380>, 'js_tag': .js_tag at 0x7f460ab252d0>}, >) [app] adding stylesheet: 'tabs.css' [app] adding js_file: 'tabs.js', {'priority': 500} writing output... [ 6%] contributing/release_guide [app] emitting event: 'doctree-resolved'(>, 'contributing/release_guide') [app] emitting event: 'html-page-context'('contributing/release_guide', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('devguide', 'Development guide', 'N', 'next'), ('contributing/guidelines', 'Contributing to |project|', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'contributing/release_guide', 'current_page_name': 'contributing/release_guide', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a9a4bf0>, 'hasdoc': .hasdoc at 0x7f460a9a4e00>, 'toctree': . at 0x7f460a9a4eb0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'guidelines.html', 'title': 'Contributing to |project|'}, 'next': {'link': '../devguide.html', 'title': 'Development guide'}, 'title': 'Release Guide', 'meta': {}, 'body': '
\n

Release Guide

\n

Welcome to the |project| Release Guide!

\n

This page contains information on how to release a new version\nof |project| using the automated Continuous Delivery pipeline.

\n
\n

Tip

\n

The intended audience for this document is maintainers\nand core contributors.

\n
\n
\n

Pre-release activities

\n
    \n
  1. Check if there are any open Pull Requests that could be\ndesired in the upcoming release. If there are any — merge\nthem. If some are incomplete, try to get them ready.\nDon’t forget to review the enclosed change notes per our\nguidelines.

  2. \n
  3. Visually inspect the draft section of the Change log\npage. Make sure the content looks consistent, uses the same\nwriting style, targets the end-users and adheres to our\ndocumented guidelines.\nMost of the change log sections will typically use the past\ntense or another way to relay the effect of the changes for\nthe users, since the previous release.\nIt should not target core contributors as the information\nthey are normally interested in is already present in the\nGit history.\nUpdate the change log fragments if you see any problems with\nthis change log section.

  4. \n
  5. If you are satisfied with the above, inspect the change log\nsection categories in the draft. Presence of the breaking\nchanges or features will hint you what version number\nsegment to bump for the release.

  6. \n
\n
\n

See also

\n
\n
Adding change notes with your PRs

Writing beautiful change logs for humans

\n
\n
\n
\n
\n
\n

The release stage

\n
    \n
  1. Open the GitHub Actions CI/CD workflow page in your web browser.

  2. \n
  3. Click the gray button Run workflow in the blue\nbanner at the top of the workflow runs list.

  4. \n
  5. In the form that appears, enter the version you used in the\npreparation steps, into the mandatory field. Do not prepend\na leading-v. Just use the raw version number as per\nPEP 440.

  6. \n
  7. Now, click the green button Run workflow.

  8. \n
  9. At some point, the workflow gets to the job for publishing\nto the “production” PyPI and stops there. You will see a\nbanner informing you that a deployment approval is needed.\nYou will also get an email notification with the same\ninformation and a link to the deployment approval view.

  10. \n
  11. While the normal PyPI upload hasn’t happened yet, the\nTestPyPI one proceeds. This gives you a chance to optionally\nverify what got published there and decide if you want to\nabort the process.

  12. \n
  13. Approve the deployment and wait for the workflow to complete.

  14. \n
  15. Verify that the following things got created:

    \n
      \n
    • a PyPI release

    • \n
    • a Git tag

    • \n
    • a GitHub Releases page

    • \n
    • a GitHub Discussions page

    • \n
    • a release pull request on GitHub

    • \n
    \n
  16. \n
  17. Merge that pull request using the natural git merge strategy\navoiding squash or rebase.

  18. \n
  19. Tell everyone you released a new version of |project| :)

  20. \n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'contributing/release_guide.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460a9a4f60>, 'js_tag': .js_tag at 0x7f460a9a5170>}, >) writing output... [ 8%] devguide [app] emitting event: 'doctree-resolved'(>, 'devguide') [app] emitting event: 'html-page-context'('devguide', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/modules', 'cheroot', 'N', 'next'), ('contributing/release_guide', 'Release Guide', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'devguide', 'current_page_name': 'devguide', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a9a56f0>, 'hasdoc': .hasdoc at 0x7f460a9a59b0>, 'toctree': . at 0x7f460a9a5b10>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'contributing/release_guide.html', 'title': 'Release Guide'}, 'next': {'link': 'pkg/modules.html', 'title': 'cheroot'}, 'title': 'Development guide', 'meta': {}, 'body': '
\n

Development guide

\n

This document is unfinished but you may check it out periodically to\nread some related notes.

\n

The release process is fairly simple:

\n
    \n
  1. Go to\nhttps://github.com/cherrypy/cheroot/actions/workflows/ci-cd.yml.

  2. \n
  3. Click Run workflow.

  4. \n
  5. Fill out the form. Ideally, only use the mandatory version field.

    \n
    \n

    Important

    \n

    Do not change the branch to use the workflow from.

    \n
    \n
  6. \n
  7. Click green Run workflow submit button.

  8. \n
  9. Wait until the CI completes and the new version appears on PyPI.

  10. \n
\n
\n', 'metatags': '\n', 'sourcename': 'devguide.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': './', 'css_tag': .css_tag at 0x7f460a9a5bc0>, 'js_tag': .js_tag at 0x7f460a9a5dd0>}, >) writing output... [ 11%] history [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'history') [app] emitting event: 'html-page-context'('history', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('contributing/guidelines', 'Contributing to |project|', 'N', 'next'), ('index', 'Welcome to Cheroot documentation!', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'history', 'current_page_name': 'history', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a9a6da0>, 'hasdoc': .hasdoc at 0x7f460a9a6f00>, 'toctree': . at 0x7f460a9a6fb0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'index.html', 'title': 'Welcome to Cheroot documentation!'}, 'next': {'link': 'contributing/guidelines.html', 'title': 'Contributing to |project|'}, 'title': 'Change log', 'meta': {'tocdepth': 2}, 'body': '
\n

Change log

\n
\n

To be included in the next release

\n
\n
\n

Released versions

\n
\n

v11.1.0

\n

(2025-11-03)

\n
\n

Features

\n
    \n
  • Added optional private key password argument to SSL adapters to support password-protected private keys\n– by @jatalahd.

    \n

    Related issues and pull requests on GitHub:\n#752.

    \n
  • \n
\n
\n
\n

Contributor-facing changes

\n
    \n
  • Added missing __all__ and IS_WINDOWS definitions to .pyi stub files for mypy.

    \n

    – by @julianz-

    \n

    Related issues and pull requests on GitHub:\n#774.

    \n
  • \n
  • Made test_http_over_https_error compatible with Solaris – by @mtelka.

    \n

    Related issues and pull requests on GitHub:\n#776.

    \n
  • \n
  • Increased timeout values test_client.server_instance.timeout and http_request_timeout\nto make related tests more stable.

    \n

    Related issues and pull requests on GitHub:\n#777.

    \n
  • \n
\n
\n
\n
\n
\n

v11.0.0

\n

(2025-09-21)

\n
\n

Features

\n
    \n
  • When load is too high, Cheroot now responds with a 503 Service Unavailable HTTP error.\nPreviously it silently closed the connection.

    \n

    – by @itamarst

    \n

    Related issues and pull requests on GitHub:\n#745.

    \n
  • \n
\n
\n
\n

Removals and backward incompatible breaking changes

\n
    \n
  • Cheroot dropped support for Python 3.6 and 3.7.\nIt now requires Python 3.8 or later.

    \n

    – by @jaraco

    \n

    Related issues and pull requests on GitHub:\n#565, #633.

    \n

    Related commits on GitHub:\n437863ee.

    \n
  • \n
\n
\n
\n

Packaging updates and notes for downstreams

\n
    \n
  • Declared Python 3.12 and Python 3.13 as supported officially\n– by @webknjaz.

    \n

    Related issues and pull requests on GitHub:\n#696.

    \n

    Related commits on GitHub:\n5db4f634.

    \n
  • \n
  • The minimum version of the setuptools-scm build dependency\nhas been set to 7. The Git archives are now produced by it\nnatively, instead of relying on a third party plugin which is\nno longer being used.

    \n

    – by @serhii73

    \n

    Related issues and pull requests on GitHub:\n#628.

    \n
  • \n
  • The packaging metadata has been migrated to the\npyproject.toml-based PEP 621 declaration\n– by @jaraco and @webknjaz.

    \n

    As a part of this update, the minimum version of the\nsetuptools build backend was bumped to 61.2.\nMoreover, any compatibility shims that existed in\nsetup.cfg and setup.py have been\nremoved for good.

    \n

    Related issues and pull requests on GitHub:\n#690.

    \n
  • \n
\n
\n
\n

Contributor-facing changes

\n
    \n
  • The test infrastructure has been updated to stop using\nthe pytest-forked plugin\n– by @jaraco and @webknjaz.

    \n

    This plugin was causing problems with upgrading to modern\nversions of Pytest and it is not going to be fixed anytime\nsoon.

    \n

    It was used in a test that interacts with the system\nresource limits under *NIX environments in hopes to isolate\nthe side effects caused by the preparatory code.

    \n

    It is possible that this will have an effect on the test\nsessions and we may have to look for alternative solutions\nfor test process isolation.

    \n

    Related issues and pull requests on GitHub:\n#502, #511, #680, #681, #703.

    \n
  • \n
  • The test infrastructure has been updated to start using\nthe upstream reusable workflow reusable-tox.yml\nfrom GitHub: tox-dev/workflow – by @webknjaz.

    \n

    This chance allows us to de-duplicate the commonly used\nCI shape.

    \n

    Related issues and pull requests on GitHub:\n#743.

    \n
  • \n
\n
\n
\n
\n
\n

v10.0.1

\n

(2024-04-22)

\n
\n

Bug fixes

\n
    \n
  • Fixed a flaw where internally unhandled exceptions\ncould crash the worker threads and eventually starve\nthe server of its processing resources. It is no\nlonger and issue and the unhandled errors are now\nlogged and suppressed except for a few expected\nexceptions that are used for normal interruption\nrequests.

    \n

    – by @cameronbrunner and @webknjaz

    \n

    Related issues and pull requests on GitHub:\n#310, #346, #354, #358, #365, #375, #599, #641, #649.

    \n
  • \n
  • Fixed compatibility with Python 3.8 in the built-in\nTLS adapter that relies on python:ssl.

    \n

    Modern Python versions communicate specialized exceptions\nssl.SSLEOFError and ssl.SSLZeroReturnError\nwhere the older versions errored out in a very generic way.

    \n

    – by @toppk and @webknjaz

    \n

    Related issues and pull requests on GitHub:\n#517, #518.

    \n
  • \n
\n
\n
\n

Packaging updates and notes for downstreams

\n
    \n
  • Started signing the package distribution artifacts in CI/CD\nwith Sigstore and uploading them to GitHub Releases\n– by @webknjaz.

    \n

    Related commits on GitHub:\n27a3c944, c45f184e.

    \n
  • \n
  • The change log management is now implemented through\nthe Towncrier tool\n– by @webknjaz.

    \n

    The contributors are now expected to include\nchange log fragment files in their pull requests.

    \n

    These news snippets can link one or more issues or pull\nrequests, and be of one or more of the following categories:

    \n
      \n
    • bugfix: A bug fix for something we deemed an improper undesired\nbehavior that got corrected in the release to match pre-agreed\nexpectations.

    • \n
    • feature: A new behavior, public APIs. That sort of stuff.

    • \n
    • deprecation: A declaration of future API removals and breaking\nchanges in behavior.

    • \n
    • breaking: When something public gets removed in a breaking way.\nCould be deprecated in an earlier release.

    • \n
    • doc: Notable updates to the documentation structure or build\nprocess.

    • \n
    • packaging: Notes for downstreams about unobvious side effects\nand tooling. Changes in the test invocation considerations and\nruntime assumptions.

    • \n
    • contrib: Stuff that affects the contributor experience. e.g.\nRunning tests, building the docs, setting up the development\nenvironment.

    • \n
    • misc: Changes that are hard to assign to any of the above\ncategories.

    • \n
    \n

    Related issues and pull requests on GitHub:\n#654.

    \n
  • \n
\n
\n
\n

Contributor-facing changes

\n
    \n
  • Started type-checking the project with MyPy against a\nrange of versions instead of just one — Python 3.8–3.12\n– by @webknjaz.

    \n

    Related commits on GitHub:\n4fa1e663, 676edc4e, be9dbc41.

    \n
  • \n
  • The project how has a .git-blame-ignore-revs letting\nGitHub know which auto-formatting revisions to ignore. It is\nalso possible to integrate it locally, if one wants to do so.

    \n

    – by @webknjaz

    \n

    Related commits on GitHub:\n5980a3fb, f8a1cc4d.

    \n
  • \n
  • The project adopted the autopep8 tool to assist with\nautomatic code formatting. It is chosen over black\nbecause it is less intrusive which is important to the\nmaintainer as it promotes inclusivity.\nautopep8 is integrated into the pre-commit check\nrunner and is configured to only correct PEP 8\nviolations, avoiding changes to compliant snippets.

    \n

    – by @webknjaz

    \n

    Related commits on GitHub:\n65ba7e69.

    \n
  • \n
  • The continuous integration and pull request merges have been\nset up to only merge pull requests through merge queues\n– by @webknjaz.

    \n

    Related commits on GitHub:\na7149e0c.

    \n
  • \n
  • Documented the upgraded release process – by @webknjaz.

    \n

    Related commits on GitHub:\ndf0d1a08.

    \n
  • \n
  • The change log management is now implemented through\nthe Towncrier tool\n– by @webknjaz.

    \n

    The contributors are now expected to include\nchange log fragment files in their pull requests.

    \n

    These news snippets can link one or more issues or pull\nrequests, and be of one or more of the following categories:

    \n
      \n
    • bugfix: A bug fix for something we deemed an improper undesired\nbehavior that got corrected in the release to match pre-agreed\nexpectations.

    • \n
    • feature: A new behavior, public APIs. That sort of stuff.

    • \n
    • deprecation: A declaration of future API removals and breaking\nchanges in behavior.

    • \n
    • breaking: When something public gets removed in a breaking way.\nCould be deprecated in an earlier release.

    • \n
    • doc: Notable updates to the documentation structure or build\nprocess.

    • \n
    • packaging: Notes for downstreams about unobvious side effects\nand tooling. Changes in the test invocation considerations and\nruntime assumptions.

    • \n
    • contrib: Stuff that affects the contributor experience. e.g.\nRunning tests, building the docs, setting up the development\nenvironment.

    • \n
    • misc: Changes that are hard to assign to any of the above\ncategories.

    • \n
    \n

    Related issues and pull requests on GitHub:\n#654.

    \n
  • \n
\n
\n
\n
\n
\n

v10.0.0

\n

(2023-05-20)

\n
    \n
  • #504 via PR #505: Cheroot now accepts a\nreuse_port parameter on the HTTPServer object.\nSubclasses overriding prepare_socket will no longer\nwork and will need to adapt to the new interface.

  • \n
\n
\n
\n

v9.0.0

\n

(2022-11-19)

\n
    \n
  • #252 via PR #339: Cheroot now requires Python\n3.6 or later. Python 3.5 and Python 2.7 are still supported\nby the maint/8.x branch and stabilizing\nbugfixes will be accepted to that branch.

  • \n
\n
\n
\n

v8.6.0

\n

(2022-01-03)

\n

Significant improvements:

\n
    \n
  • #384 via PR #385, PR #406: Exposed type stubs with\nannotations for public API – by @kasium.

  • \n
  • PR #401 (related to the PR #352 effort): Started reusing the\nthe expriration_interval setting as timeout in the low-level\nselect() invocation, effectively reducing the system\nload when idle, that is noticeable on low-end hardware systems. On\nWindows OS, due to different select() behavior, the\neffect is less significant and comes with a theoretically decreased\nperformance on quickly repeating requests, which has however found\nto be not significant in real world scenarios.\n– by @MichaIng.

  • \n
\n

Internal changes:

\n
    \n
  • Implemented a manual-trigger-based release workflow.

  • \n
  • Integrated publishing GitHub Releases into the workflow.

  • \n
  • Migrated the docs theme to Furo\n(created by @pradyunsg).

  • \n
  • Attempted to improve the stability of testing.

  • \n
  • Configured the CI to test the same distribution as will be shipped.

  • \n
  • Improved the linting setup and contributor checklists.

  • \n
  • Stopped running tests under Ubuntu 16.04.

  • \n
  • Tweaked the distribution packages metadata to satisfy strict checks.

  • \n
  • Implemented distribution build reproducibility using a pip constraints\nlock-file.

  • \n
  • Added per-environment lock-files into the tox test environments.

  • \n
\n
\n
\n

v8.5.2

\n

(2021-01-18)

\n
    \n
  • #358 via PR #359: Fixed a regression from\nPR #199 that made the worker threads exit on invalid\nconnection attempts and could make the whole server\nunresponsive once there was no workers left.\n– by @cameronbrunner.

  • \n
\n
\n
\n

v8.5.1

\n

(2020-12-12)

\n\n
\n
\n

v8.5.0

\n

(2020-12-05)

\n
    \n
  • #305 via PR #311: In\nConnectionManager,\nprocess connections as they become active rather than\nwaiting for a tick event, addressing performance\ndegradation introduced in v8.1.0 – by @liamstask.

  • \n
  • #341 via PR #342: Suppress legitimate OS errors\nexpected on shutdown – by @webknjaz.

  • \n
\n
\n
\n

v8.4.8

\n

(2020-11-24)

\n
    \n
  • #317 via PR #337: Fixed a regression in\n8.4.5 where the connections dictionary would change\nsize during iteration, leading to a RuntimeError\nraised in the logs – by @liamstask.

  • \n
\n
\n
\n

v8.4.7

\n

(2020-11-15)

\n
    \n
  • PR #334: Started filtering out TLS/SSL errors when\nthe version requested by the client is unsupported\n– by @sanderjo and @Safihre.

  • \n
\n
\n
\n

v8.4.6

\n

(2020-11-15)

\n\n
\n
\n

v8.4.5

\n

(2020-08-24)

\n
    \n
  • #312 via PR #313: Fixed a regression introduced\nin the earlier refactoring in v8.4.4 via PR #309 that\ncaused the connection manager to modify the selector map\nwhile looping over it – by @liamstask.

  • \n
  • #312 via PR #316: Added a regression test for\nthe error handling in get_conn() to ensure more stability\n– by @cyraxjoe.

  • \n
\n
\n
\n

v8.4.4

\n

(2020-08-12)

\n
    \n
  • #304 via PR #309: Refactored ConnectionManager to use get_map() and reorganized the\nreadable connection tracking – by @liamstask.

  • \n
  • #304 via PR #309: Fixed the server shutdown\nsequence to avoid race condition resulting in accepting\nnew connections while it is being terminated\n– by @liamstask.

  • \n
\n
\n
\n

v8.4.3

\n

(2020-08-12)

\n
    \n
  • PR #282: Fixed a race condition happening when an HTTP\nclient attempts to reuse a persistent HTTP connection after\nit’s been discarded on the server in HTTPRequest but no TCP FIN packet has been received\nyet over the wire – by @meaksh.

    \n

    This change populates the Keep-Alive header exposing\nthe timeout value for persistent HTTP/1.1 connections which\nhelps mitigate such race conditions by letting the client\nknow not to reuse the connection after that time interval.

    \n
  • \n
\n
\n
\n

v8.4.2

\n

(2020-07-28)

\n
    \n
  • Fixed a significant performance regression introduced in\nv8.1.0 (#305 via PR #308) - by @mar10.

    \n

    The issue turned out to add 0.1s delay on new incoming\nconnection processing. We’ve lowered that delay to mitigate\nthe problem short-term, better fix is yet to come.

    \n
  • \n
\n
\n
\n

v8.4.1

\n

(2020-07-26)

\n
    \n
  • Prevent ConnectionAbortedError traceback from being\nprinted out to the terminal output during the app start-up on\nWindows when built-in TLS adapter is used (#302 via\nPR #306) - by @mxii-ca.

  • \n
\n
\n
\n

v8.4.0

\n

(2020-07-23)

\n
    \n
  • Converted management from low-level select() to\nhigh-level selectors (#249 via PR #301)\n- by @tommilligan.

    \n

    This change also introduces a conditional dependency on\nselectors2 as a fall-back for legacy Python interpreters.

    \n
  • \n
\n
\n
\n

v8.3.1

\n

(2020-07-13)

\n
    \n
  • Fixed TLS socket related unclosed resource warnings\n(PR #291 and PR #298).

  • \n
  • Made terminating keep-alive connections more graceful\n(#263 via PR #277).

  • \n
\n
\n
\n

v8.3.0

\n

(2020-02-09)

\n
    \n
  • CherryPy #910 via PR #243: Provide TLS-related\ndetails via WSGI environment interface.

  • \n
  • PR #248: Fix parsing of the --bind CLI option\nfor abstract UNIX sockets.

  • \n
\n
\n
\n

v8.2.1

\n

(2019-10-17)

\n
    \n
  • CherryPy #1818: Restore support for None\ndefault argument to WebCase.getPage().

  • \n
\n
\n
\n

v8.2.0

\n

(2019-10-14)

\n
    \n
  • Deprecated use of negative timeouts as alias for\ninfinite timeouts in ThreadPool.stop.

  • \n
  • CherryPy #1662 via PR #74: For OPTION requests,\nbypass URI as path if it does not appear absolute.

  • \n
\n
\n
\n

v8.1.0

\n

(2019-10-09)

\n
    \n
  • Workers are now request-based, addressing the\nlong-standing issue with keep-alive connections\n(#91 via PR #199).

  • \n
\n
\n
\n

v8.0.0

\n

(2019-10-09)

\n
    \n
  • #231 via PR #232: Remove custom setup.cfg\nparser handling, allowing the project (including sdist)\nto build/run on setuptools 41.4. Now building cheroot\nrequires setuptools 30.3 or later (for declarative\nconfig support) and preferably 34.4 or later (as\nindicated in pyproject.toml).

  • \n
\n
\n
\n

v7.0.0

\n

(2019-09-26)

\n
    \n
  • PR #224: Refactored “open URL” behavior in\nwebtest to rely on retry_call.\nCallers can no longer pass raise_subcls or ssl_context\npositionally, but must pass them as keyword arguments.

  • \n
\n
\n
\n

v6.6.0

\n

(2019-09-25)

\n
    \n
  • Revisit PR #85 under PR #221. Now\nbackports.functools_lru_cache is only\nrequired on Python 3.2 and earlier.

  • \n
  • CherryPy #1206 via PR #204: Fix race condition in\nthreadpool shrink code.

  • \n
\n
\n
\n

v6.5.8

\n

(2019-09-05)

\n
    \n
  • #222 via 621f4ee: Fix\nsocket.SO_PEERCRED constant fallback value\nunder PowerPC.

  • \n
\n
\n
\n

v6.5.7

\n

(2019-09-03)

\n
    \n
  • #198 via 9f7affe: Fix race condition when\ntoggling stats counting in the middle of request processing.

  • \n
  • Improve post Python 3.9 compatibility checks.

  • \n
  • Fix support of abstract namespace sockets.

  • \n
\n
\n
\n

v6.5.6

\n

(2019-08-19)

\n
    \n
  • #218 via PR #219: Fix HTTP parser to return 400 on\ninvalid major-only HTTP version in Request-Line.

  • \n
\n
\n
\n

v6.5.5

\n

(2019-04-25)

\n
    \n
  • #99 via PR #186: Sockets now collect statistics (bytes\nread and written) on Python 3 same as Python 2.

  • \n
  • CherryPy #1618 via PR #180: Ignore OpenSSL’s 1.1+ Error 0\nunder any Python while wrapping a socket.

  • \n
\n
\n
\n

v6.5.4

\n

(2019-01-01)

\n
    \n
  • #113: Fix cheroot.ssl.pyopenssl\nunder Python 3.

  • \n
  • #154 via PR #159: Remove custom license field from\ndist metadata.

  • \n
  • #95: Fully integrate trustme into all TLS tests.\nAlso remove all hardcoded TLS certificates.

  • \n
  • #42: Remove traces of unittest and\nddt usage.

  • \n
  • Fix invalid input processing in\ncheroot._compat.extract_bytes().

  • \n
  • Fix returning error explanation over plain HTTP for PyOpenSSL.

  • \n
  • Add a fallback for os.lchmod() where it’s missing.

  • \n
  • Avoid traceback for invalid client cert with builtin\nssl adapter.

  • \n
  • Avoid deprecation warning with OpenSSL.SSL.Connection.

  • \n
  • Fix socket wrapper in PyOpenSSL adapter.

  • \n
  • Improve tests coverage:

    \n\n
  • \n
\n
\n
\n

v6.5.3

\n

(2018-12-20)

\n
    \n
  • PR #149: Make SCRIPT_NAME optional per PEP 333.

  • \n
\n
\n
\n

v6.5.2

\n

(2018-09-03)

\n\n
\n
\n

v6.5.1

\n

(2018-09-02)

\n\n
\n
\n

v6.5.0

\n

(2018-08-29)

\n\n
\n
\n

v6.4.0

\n

(2018-08-01)

\n\n
\n
\n

v6.3.3

\n

(2018-07-10)

\n\n
\n
\n

v6.3.2

\n

(2018-06-16)

\n
    \n
  • #100 via PR #101: Respond with HTTP 400 to malicious\nContent-Length in request headers.

  • \n
\n
\n
\n

v6.3.1

\n

(2018-05-21)

\n
    \n
  • CherryPy #1618: Ignore OpenSSL’s 1.1+ Error 0 under Python 2 while\nwrapping a socket.

  • \n
\n
\n
\n

v6.3.0

\n

(2018-05-17)

\n
    \n
  • PR #87: Add cheroot command and runpy launcher to\nlaunch a WSGI app from the command-line.

  • \n
\n
\n
\n

v6.2.4

\n

(2018-04-19)

\n
    \n
  • Fix missing resolve_peer_creds argument in\ncheroot.wsgi.Server being bypassed into\ncheroot.server.HTTPServer.

  • \n
  • PR #85: Revert conditional dependencies. System packagers should\nhonor the dependencies as declared by cheroot, which are defined\nintentionally.

  • \n
\n
\n
\n

v6.2.3

\n

(2018-04-14)

\n
    \n
  • PR #85: Skip installing dependencies from backports namespace under\nPython 3.

  • \n
\n
\n
\n

v6.2.2

\n

(2018-04-14)

\n\n
\n
\n

v6.2.1

\n

(2018-04-10)

\n
    \n
  • PR #83: Fix regression, caused by inverted check for Windows OS.

  • \n
  • Add more URLs to distribution metadata

  • \n
\n
\n
\n

v6.2.0

\n

(2018-04-10)

\n
    \n
  • PR #37: Implement PEERCRED lookup over UNIX-socket HTTP connection.

    \n
      \n
    • Discover connected process’ PID/UID/GID

    • \n
    • Respect server switches: peercreds_enabled and\npeercreds_resolve_enabled

    • \n
    • get_peer_creds and resolve_peer_creds methods on connection

    • \n
    • peer_pid, peer_uid, peer_gid, peer_user and peer_group\nproperties on connection

    • \n
    • X_REMOTE_PID, X_REMOTE_UID, X_REMOTE_GID, X_REMOTE_USER\n(REMOTE_USER) and X_REMOTE_GROUP WSGI environment variables when\nenabled and supported

    • \n
    • Per-connection caching to reduce lookup cost

    • \n
    \n
  • \n
\n
\n
\n

v6.1.2

\n

(2018-04-08)

\n\n
\n
\n

v6.1.1

\n

(2018-04-07)

\n\n
\n
\n

v6.1.0

\n

(2018-04-05)

\n
    \n
  • PR #67: Refactor test suite to completely rely on pytest.

    \n
      \n
    • Integrate pytest-testmon and pytest-watch

    • \n
    • Stabilize testing

    • \n
    \n
  • \n
  • CherryPy #1664 via PR #66: Implement input termination flag support as\nsuggested by @mitsuhiko in his\nwsgi.input_terminated Proposal.

  • \n
  • #73: Fix SSL error bypassing.

  • \n
  • #77 via PR #78: Fix WSGI documentation example to support Python 3.

  • \n
  • PR #76: Send correct conditional HTTP error in helper function.

  • \n
  • CherryPy #1404 via PR #75: Fix headers being unsent before request\nclosed. Now we double check that they’ve been sent.

  • \n
  • Minor docs improvements.

  • \n
  • Minor refactoring.

  • \n
\n
\n
\n

v6.0.0

\n

(2017-12-04)

\n
    \n
  • Drop support for Python 2.6, 3.1, 3.2, and 3.3.

  • \n
  • Also drop built-in SSL support for Python 2.7 earlier\nthan 2.7.9.

  • \n
\n
\n
\n

v5.11.0

\n

(2017-12-04)

\n
    \n
  • CherryPy #1621: To support webtest\napplications that feed absolute URIs to\ngetPage()\nbut expect the scheme/host/port to be ignored (as cheroot 5.8\nand earlier did), provide a strip_netloc helper and recipe\nfor calling it in a subclass.

  • \n
\n
\n
\n

v5.10.0

\n

(2017-11-23)

\n
    \n
  • Minor refactorings of cheroot/server.py to reduce redundancy\nof behavior.

  • \n
  • Delinting with fewer exceptions.

  • \n
  • Restored license to BSD.

  • \n
\n
\n
\n

v5.9.2

\n

(2017-11-23)

\n
    \n
  • #61: Re-release without spurious files in the distribution.

  • \n
\n
\n
\n

v5.9.1

\n

(2017-11-17)

\n
    \n
  • #58: Reverted encoding behavior in wsgi module to correct\nregression in CherryPy tests.

  • \n
\n
\n
\n

v5.9.0

\n

(2017-11-16)

\n
    \n
  • CherryPy #1088 and PR #53: Avoid using SO_REUSEADDR on Windows\nwhere it has different semantics.

  • \n
  • cheroot.tests.webtest adopts the one method that was unique\nin CherryPy, now superseding the implementation there.

  • \n
  • Substantial cleanup around compatibility functions\n(_compat module).

  • \n
  • License unintentionally changed to MIT. BSD still declared and intended.

  • \n
\n
\n
\n

v5.8.3

\n

(2017-08-11)

\n
    \n
  • Improve HTTP request line validation:

    \n
      \n
    • Improve HTTP version parsing

    • \n
    \n
  • \n
  • Fix HTTP CONNECT method processing:

    \n
      \n
    • Respond with 405 Method Not Allowed if proxy_mode is False

    • \n
    • Validate that request-target is in authority-form

    • \n
    \n
  • \n
  • Improve tests in test.test_core

  • \n
  • PR #44: Fix EPROTOTYPE @ Mac OS

  • \n
\n
\n
\n

v5.8.2

\n

(2017-08-07)

\n
    \n
  • Fix PR #39 regression. Add HTTP request line check:\nabsolute URI path must start with a\nforward slash (“/”).

  • \n
\n
\n
\n

v5.8.1

\n

(2017-08-05)

\n
    \n
  • CI improvements:

    \n
      \n
    • Add basic working Circle CI v2 config

    • \n
    \n
  • \n
  • Fix URI encoding bug introduced in PR #39

    \n\n
  • \n
\n
\n
\n

v5.8.0

\n

(2017-08-01)

\n
    \n
  • CI improvements:

    \n
      \n
    • Switch to native PyPy support in Travis CI

    • \n
    • Take into account PEP 257 compliant modules

    • \n
    • Build wheel in AppVeyor and store it as an artifact

    • \n
    \n
  • \n
  • Improve urllib support in cheroot._compat

  • \n
  • #38 via PR #39: Improve URI parsing:

    \n
      \n
    • Make it compliant with RFC 7230, RFC 7231 and RFC 2616

    • \n
    • Fix setting of environ[\'QUERY_STRING\'] in WSGI

    • \n
    • Introduce proxy_mode and strict_mode argument in server.HTTPRequest

    • \n
    • Fix decoding of Unicode URIs in WSGI 1.0 gateway

    • \n
    \n
  • \n
\n
\n
\n

v5.7.0

\n

(2017-06-24)

\n
    \n
  • CI improvements:

    \n
      \n
    • Don’t run tests during deploy stage

    • \n
    • Use VM based build job environments only for pyenv environments

    • \n
    • Opt-in for beta trusty image @ Travis CI

    • \n
    • Be verbose when running tests (show test names)

    • \n
    • Show xfail/skip details during test run

    • \n
    \n
  • \n
  • #34: Fix _handle_no_ssl error handler calls

  • \n
  • #21: Fix test_conn tests:

    \n
      \n
    • Improve setup_server def in HTTP connection tests

    • \n
    • Fix HTTP streaming tests

    • \n
    • Fix HTTP/1.1 pipelining test under Python 3

    • \n
    • Fix test_readall_or_close test

    • \n
    • Fix test_No_Message_Body

    • \n
    • Clarify test_598 fail reason

    • \n
    \n
  • \n
  • #36: Add GitHub templates for PR, issue && contributing

  • \n
  • #27: Default HTTP Server header to Cheroot version str

  • \n
  • Cleanup _compat functions from server module

  • \n
\n
\n
\n

v5.6.0

\n

(2017-06-20)

\n
    \n
  • Fix all PEP 257 related errors in all non-test modules.

    \n

    cheroot/test/* folder is only one left allowed to fail with this linter.

    \n
  • \n
  • CherryPy #1602 and PR #30: Optimize chunked body reader loop by returning\nempty data is the size is 0.

  • \n
  • CherryPy #1486: Reset buffer if the body size is unknown

  • \n
  • CherryPy #1131: Add missing size hint to SizeCheckWrapper

  • \n
\n
\n
\n

v5.5.2

\n

(2017-06-18)

\n\n
\n
\n

v5.5.1

\n

(2017-06-18)

\n
    \n
  • Make AppVeyor list separate tests in corresponding tab.

  • \n
  • PR #29: Configure Travis CI build stages.

    \n

    Prioritize tests by stages.

    \n

    Move deploy stage to be run very last after all other stages finish.

    \n
  • \n
  • PR #31: Ignore “Protocol wrong type for socket” (EPROTOTYPE) @ OSX for non-blocking sockets.

    \n

    This was originally fixed for regular sockets in CherryPy #1392.

    \n

    Ref: https://forums.sabnzbd.org/viewtopic.php?f=2&t=22728&p=112251

    \n
  • \n
\n
\n
\n

v5.5.0

\n

(2017-05-02)

\n
    \n
  • #17 via PR #25: Instead of a read_headers function, cheroot now\nsupplies a HeaderReader class to\nperform the same function.

    \n

    Any HTTPRequest object may override\nthe header_reader attribute to customize the handling of incoming headers.

    \n

    The server module also presents a provisional implementation of\na DropUnderscoreHeaderReader that will exclude any headers\ncontaining an underscore. It remains an exercise for the\nimplementer to demonstrate how this functionality might be\nemployed in a server such as CherryPy.

    \n
  • \n
  • PR #26: Configured TravisCI to run tests under OS X.

  • \n
\n
\n
\n

v5.4.0

\n

(2017-03-19)

\n
    \n
  • PR #22: Add “ciphers” parameter to SSLAdapter.

  • \n
\n
\n
\n

v5.3.0

\n

(2017-03-12)

\n\n
\n
\n

v5.2.0

\n

(2017-03-02)

\n
    \n
  • #5: Set Server.version to Cheroot version instead of CherryPy\nversion.

  • \n
  • PR #4: Prevent tracebacks and drop bad HTTPS connections in the\nBuiltinSSLAdapter, similar to pyOpenSSLAdapter.

  • \n
  • #3: Test suite now runs and many tests pass. Some are still failing.

  • \n
\n
\n
\n

v5.1.0

\n

(2017-01-22)

\n
    \n
  • Removed the WSGI prefix from classes in cheroot.wsgi. Kept aliases\nfor compatibility.

  • \n
  • #1: Corrected docstrings in cheroot.server and\ncheroot.wsgi.

  • \n
  • PR #2: Fixed ImportError when pkg_resources cannot find the\ncheroot distribution.

  • \n
\n
\n
\n

v5.0.1

\n

(2017-01-14)

\n
    \n
  • Fix error in parse_request_uri created in 68a5769.

  • \n
\n
\n
\n

v5.0.0

\n

(2017-01-14)

\n\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'history.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': './', 'css_tag': .css_tag at 0x7f460a9a7060>, 'js_tag': .js_tag at 0x7f460a9a7270>}, >) writing output... [ 14%] index [app] emitting event: 'doctree-resolved'(
, 'index') [app] emitting event: 'html-page-context'('index', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('history', 'Change log', 'N', 'next')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'index', 'current_page_name': 'index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a456400>, 'hasdoc': .hasdoc at 0x7f460a4566c0>, 'toctree': . at 0x7f460a456820>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': None, 'next': {'link': 'history.html', 'title': 'Change log'}, 'title': 'Welcome to Cheroot documentation!', 'meta': None, 'body': '
\n

Welcome to Cheroot documentation!

\nSWUbanner\n\nhttps://img.shields.io/pypi/v/cheroot.svg\n\nCheroot is available as part of the Tidelift Subscription\n\nGitHub Actions CI/CD Workflow\n\nhttps://img.shields.io/badge/license-BSD-blue.svg?maxAge=3600\n\nhttps://img.shields.io/pypi/pyversions/cheroot.svg\n\ncodecov\n\nhttps://readthedocs.org/projects/cheroot/badge/?version=latest\n\nhttps://img.shields.io/badge/StackOverflow-Cheroot-blue.svg\n\nMatrix Room — #cherrypy:matrix.org\n\nMatrix Space — #cherrypy-space:matrix.org\n\nhttps://img.shields.io/gitter/room/cherrypy/cherrypy.svg\n\nhttps://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n\nFOSSA Status\n\n

Cheroot is the high-performance, pure-Python HTTP server used by CherryPy.

\n
\n
\n

Status

\n

The test suite currently relies on pytest. It’s being run via GitHub\nActions CI/CD workflows.

\n
\n
\n

For Enterprise

\n\n\n\n\n\n\n\n\n\n\n

Tidelift

Professional support for Cheroot is available as part of the\nTidelift Subscription. The CherryPy maintainers and the\nmaintainers of thousands of other packages are working with\nTidelift to deliver one enterprise subscription that covers all\nof the open source you use.

\n

Tidelift gives software development teams a single source for\npurchasing and maintaining their software, with professional\ngrade assurances from the experts who know it best, while\nseamlessly integrating with existing tools.

\n

Learn more.

\n
\n
\n
\n

Contribute Cheroot

\n

Want to add something to upstream? Feel free to submit a PR or file an issue\nif unsure. Please follow CherryPy’s common contribution guidelines.\nNote that PR is more likely to be accepted if it includes tests and detailed\ndescription helping maintainers to understand it better 🎉

\n

Oh, and be pythonic, please 🐍

\n

Don’t know how? Check out How to Contribute to Open Source article by GitHub 🚀

\n
\n
\n

License

\nFOSSA Status\n\n
\n\n
\n\n\n
\n

Reference

\n\n
\n

Cheroot is the high-performance,\npure-Python HTTP server used by CherryPy.

\n
\n
\n

Indices and tables

\n\n
\n', 'metatags': '\n', 'sourcename': 'index.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': './', 'css_tag': .css_tag at 0x7f460a4568d0>, 'js_tag': .js_tag at 0x7f460a456ae0>},
) writing output... [ 17%] pkg/cheroot [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot') [app] emitting event: 'html-page-context'('pkg/cheroot', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.ssl', 'cheroot.ssl package', 'N', 'next'), ('pkg/modules', 'cheroot', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot', 'current_page_name': 'pkg/cheroot', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a0ac3b0>, 'hasdoc': .hasdoc at 0x7f460a0ac720>, 'toctree': . at 0x7f460a0ac7d0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'modules.html', 'title': 'cheroot'}, 'next': {'link': 'cheroot.ssl.html', 'title': 'cheroot.ssl package'}, 'title': 'cheroot package', 'meta': {}, 'body': '
\n

cheroot package

\n
\n

Subpackages

\n
\n\n
\n
\n
\n

Submodules

\n
\n\n
\n
\n
\n

Module contents

\n

High-performance, pure-Python HTTP server used by CherryPy.

\n
\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460a0ac880>, 'js_tag': .js_tag at 0x7f460a0aca90>}, >) writing output... [ 19%] pkg/cheroot.__main__ [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.__main__') [app] emitting event: 'html-page-context'('pkg/cheroot.__main__', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot._compat', 'cheroot._compat module', 'N', 'next'), ('pkg/cheroot.workers.threadpool', 'cheroot.workers.threadpool module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.__main__', 'current_page_name': 'pkg/cheroot.__main__', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a0ac5c0>, 'hasdoc': .hasdoc at 0x7f460a0acd50>, 'toctree': . at 0x7f460a0ad010>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.workers.threadpool.html', 'title': 'cheroot.workers.threadpool module'}, 'next': {'link': 'cheroot._compat.html', 'title': 'cheroot._compat module'}, 'title': 'cheroot.__main__ module', 'meta': {}, 'body': '
\n

cheroot.__main__ module

\n

Stub for accessing the Cheroot CLI tool.

\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.__main__.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460a0acbf0>, 'js_tag': .js_tag at 0x7f460a0acb40>}, >) writing output... [ 22%] pkg/cheroot._compat [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot._compat') [app] emitting event: 'html-page-context'('pkg/cheroot._compat', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.cli', 'cheroot.cli module', 'N', 'next'), ('pkg/cheroot.__main__', 'cheroot.__main__ module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot._compat', 'current_page_name': 'pkg/cheroot._compat', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a0ac7d0>, 'hasdoc': .hasdoc at 0x7f460a0ac670>, 'toctree': . at 0x7f460a0ac720>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.__main__.html', 'title': 'cheroot.__main__ module'}, 'next': {'link': 'cheroot.cli.html', 'title': 'cheroot.cli module'}, 'title': 'cheroot._compat module', 'meta': {}, 'body': '
\n

cheroot._compat module

\n

Compatibility code for using Cheroot with various versions of Python.

\n
\n
\ncheroot._compat.assert_native(n)
\n

Check whether the input is of native str type.

\n
\n
Raises:

TypeError: in case of failed check

\n
\n
\n
\n\n
\n
\ncheroot._compat.bton(b, encoding=\'ISO-8859-1\')
\n

Return the byte string as native string in the given encoding.

\n
\n\n
\n
\ncheroot._compat.extract_bytes(mv)
\n

Retrieve bytes out of the given input buffer.

\n
\n
Parameters:
\n

mv (memoryview or bytes) – input buffer()

\n
\n
Returns:
\n

unwrapped bytes

\n
\n
Return type:
\n

bytes

\n
\n
Raises:
\n

ValueError – if the input is not one of memoryview/buffer() or bytes

\n
\n
\n
\n\n
\n
\ncheroot._compat.ntob(n, encoding=\'ISO-8859-1\')
\n

Return the native string as bytes in the given encoding.

\n
\n\n
\n
\ncheroot._compat.ntou(n, encoding=\'ISO-8859-1\')
\n

Return the native string as Unicode with the given encoding.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot._compat.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460a0ac5c0>, 'js_tag': .js_tag at 0x7f460a0acb40>}, >) writing output... [ 25%] pkg/cheroot.cli [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.cli') [app] emitting event: 'html-page-context'('pkg/cheroot.cli', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.connections', 'cheroot.connections module', 'N', 'next'), ('pkg/cheroot._compat', 'cheroot._compat module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.cli', 'current_page_name': 'pkg/cheroot.cli', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609f564b0>, 'hasdoc': .hasdoc at 0x7f4609f56610>, 'toctree': . at 0x7f4609f566c0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot._compat.html', 'title': 'cheroot._compat module'}, 'next': {'link': 'cheroot.connections.html', 'title': 'cheroot.connections module'}, 'title': 'cheroot.cli module', 'meta': {}, 'body': '
\n

cheroot.cli module

\n

Command line tool for starting a Cheroot WSGI/HTTP server instance.

\n

Basic usage:

\n
$ # Start a server on 127.0.0.1:8000 with the default settings\n$ # for the WSGI app myapp/wsgi.py:application()\n$ cheroot myapp.wsgi\n\n$ # Start a server on 0.0.0.0:9000 with 8 threads\n$ # for the WSGI app myapp/wsgi.py:main_app()\n$ cheroot myapp.wsgi:main_app --bind 0.0.0.0:9000 --threads 8\n\n$ # Start a server for the cheroot.server.Gateway subclass\n$ # myapp/gateway.py:HTTPGateway\n$ cheroot myapp.gateway:HTTPGateway\n\n$ # Start a server on the UNIX socket /var/spool/myapp.sock\n$ cheroot myapp.wsgi --bind /var/spool/myapp.sock\n\n$ # Start a server on the abstract UNIX socket CherootServer\n$ cheroot myapp.wsgi --bind @CherootServer\n
\n
\n
\n
\nclass cheroot.cli.AbstractSocket(abstract_socket)
\n

Bases: BindLocation

\n

AbstractSocket.

\n
\n\n
\n
\nclass cheroot.cli.Application(wsgi_app)
\n

Bases: object

\n

Application.

\n
\n
\nclassmethod resolve(full_path)
\n

Read WSGI app/Gateway path string and import application module.

\n
\n\n
\n
\nserver(parsed_args)
\n

Server.

\n
\n\n
\n
\nserver_args(parsed_args)
\n

Return keyword arguments for Server class.

\n
\n\n
\n\n
\n
\nclass cheroot.cli.BindLocation
\n

Bases: object

\n

A class for storing the bind location for a Cheroot instance.

\n
\n\n
\n
\nclass cheroot.cli.GatewayYo(gateway)
\n

Bases: object

\n

Gateway.

\n
\n
\nserver(parsed_args)
\n

Server.

\n
\n\n
\n\n
\n
\nclass cheroot.cli.TCPSocket(address, port)
\n

Bases: BindLocation

\n

TCPSocket.

\n
\n\n
\n
\nclass cheroot.cli.UnixSocket(path)
\n

Bases: BindLocation

\n

UnixSocket.

\n
\n\n
\n
\ncheroot.cli.main()
\n

Create a new Cheroot instance with arguments from the command line.

\n
\n\n
\n
\ncheroot.cli.parse_wsgi_bind_addr(bind_addr_string)
\n

Convert bind address string to bind address parameter.

\n
\n\n
\n
\ncheroot.cli.parse_wsgi_bind_location(bind_addr_string)
\n

Convert bind address string to a BindLocation.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.cli.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609f56770>, 'js_tag': .js_tag at 0x7f4609f56980>}, >) writing output... [ 28%] pkg/cheroot.connections [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.connections') [app] emitting event: 'html-page-context'('pkg/cheroot.connections', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.errors', 'cheroot.errors module', 'N', 'next'), ('pkg/cheroot.cli', 'cheroot.cli module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.connections', 'current_page_name': 'pkg/cheroot.connections', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609f57270>, 'hasdoc': .hasdoc at 0x7f4609f571c0>, 'toctree': . at 0x7f4609f56e50>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.cli.html', 'title': 'cheroot.cli module'}, 'next': {'link': 'cheroot.errors.html', 'title': 'cheroot.errors module'}, 'title': 'cheroot.connections module', 'meta': {}, 'body': '
\n

cheroot.connections module

\n

Utilities to manage open connections.

\n
\n
\nclass cheroot.connections.ConnectionManager(server)
\n

Bases: object

\n

Class which manages HTTPConnection objects.

\n

This is for connections which are being kept-alive for follow-up requests.

\n
\n
\n_expire(threshold)
\n

Expire least recently used connections.

\n
\n
Parameters:
\n

threshold (float) – Connections that have not been used within this duration (in seconds), are considered expired and are closed and removed.

\n
\n
\n

This should be called periodically.

\n
\n\n
\n
\n_from_server_socket(server_socket)
\n
\n\n
\n
\nproperty _num_connections
\n

Return the current number of connections.

\n

Includes all connections registered with the selector,\nminus one for the server socket, which is always registered\nwith the selector.

\n
\n\n
\n
\n_remove_invalid_sockets()
\n

Clean up the resources of any broken connections.

\n

This method attempts to detect any connections in an invalid state,\nunregisters them from the selector and closes the file descriptors of\nthe corresponding network sockets where possible.

\n
\n\n
\n
\n_run(expiration_interval)
\n

Run connection handler loop until stop was requested.

\n
\n
Parameters:
\n

expiration_interval (float) – Interval, in seconds, at which connections will be checked for expiration.

\n
\n
\n

Use expiration_interval as select() timeout\nto assure expired connections are closed in time.

\n

On Windows cap the timeout to 0.05 seconds\nas select() does not return when a socket is ready.

\n
\n\n
\n
\nproperty can_add_keepalive_connection
\n

Flag whether it is allowed to add a new keep-alive connection.

\n
\n\n
\n
\nclose()
\n

Close all monitored connections.

\n
\n\n
\n
\nput(conn)
\n

Put idle connection into the ConnectionManager to be managed.

\n
\n
Parameters:
\n

conn (cheroot.server.HTTPConnection) – HTTP connection to be managed

\n
\n
\n
\n\n
\n
\nrun(expiration_interval)
\n

Run the connections selector indefinitely.

\n
\n
Args:
\n
expiration_interval (float): Interval, in seconds, at which

connections will be checked for expiration.

\n
\n
\n
\n
\n

Connections that are ready to process are submitted via\nself.server.process_conn()

\n

Connections submitted for processing must be put()\nback if they should be examined again for another request.

\n

Can be shut down by calling stop().

\n
\n\n
\n
\nstop()
\n

Stop the selector loop in run() synchronously.

\n

May take up to half a second.

\n
\n\n
\n\n
\n
\nclass cheroot.connections._ThreadsafeSelector
\n

Bases: object

\n

Thread-safe wrapper around a DefaultSelector.

\n
\n
There are 2 thread contexts in which it may be accessed:
    \n
  • the selector thread

  • \n
  • one of the worker threads in workers/threadpool.py

  • \n
\n
\n
The expected read/write patterns are:
\n
\n
\n

Notably, this means _ThreadsafeSelector never needs to worry\nthat connections will be removed behind its back.

\n

The lock is held when iterating or modifying the selector but is not\nrequired when select()ing on it.

\n
\n
\nclose()
\n

Close the selector.

\n
\n\n
\n
\nproperty connections
\n

Retrieve connections registered with the selector.

\n
\n\n
\n
\nregister(fileobj, events, data=None)
\n

Register fileobj with the selector.

\n
\n\n
\n
\nselect(timeout=None)
\n

Return socket fd and data pairs from selectors.select call.

\n
\n
Returns entries ready to read in the form:

(socket_file_descriptor, connection)

\n
\n
\n
\n\n
\n
\nunregister(fileobj)
\n

Unregister fileobj from the selector.

\n
\n\n
\n\n
\n
\ncheroot.connections.prevent_socket_inheritance(sock)
\n

Mark the given socket fd as non-inheritable (POSIX).

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.connections.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609f57060>, 'js_tag': .js_tag at 0x7f4609f575e0>}, >) writing output... [ 31%] pkg/cheroot.errors [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.errors') [app] emitting event: 'html-page-context'('pkg/cheroot.errors', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.makefile', 'cheroot.makefile module', 'N', 'next'), ('pkg/cheroot.connections', 'cheroot.connections module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.errors', 'current_page_name': 'pkg/cheroot.errors', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609ddc3b0>, 'hasdoc': .hasdoc at 0x7f4609ddcbf0>, 'toctree': . at 0x7f4609ddcca0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.connections.html', 'title': 'cheroot.connections module'}, 'next': {'link': 'cheroot.makefile.html', 'title': 'cheroot.makefile module'}, 'title': 'cheroot.errors module', 'meta': {}, 'body': '
\n

cheroot.errors module

\n

Collection of exceptions raised and/or processed by Cheroot.

\n
\n
\nexception cheroot.errors.FatalSSLAlert
\n

Bases: Exception

\n

Exception raised when the SSL implementation signals a fatal alert.

\n
\n\n
\n
\nexception cheroot.errors.MaxSizeExceeded
\n

Bases: Exception

\n

Exception raised when a client sends more data then allowed under limit.

\n

Depends on request.body.maxbytes config option if used within CherryPy.

\n
\n\n
\n
\nexception cheroot.errors.NoSSLError
\n

Bases: Exception

\n

Exception raised when a client speaks HTTP to an HTTPS socket.

\n
\n\n
\n
\ncheroot.errors.acceptable_sock_shutdown_error_codes = {32, 104, 107, 108}
\n

Errors that may happen during the connection close sequence.

\n
    \n
  • ENOTCONN — client is no longer connected

  • \n
  • EPIPE — write on a pipe while the other end has been closed

  • \n
  • ESHUTDOWN — write on a socket which has been shutdown for writing

  • \n
  • ECONNRESET — connection is reset by the peer, we received a TCP RST packet

  • \n
\n

Refs:\n* https://github.com/cherrypy/cheroot/issues/341#issuecomment-735884889\n* https://bugs.python.org/issue30319\n* https://bugs.python.org/issue30329\n* https://github.com/python/cpython/commit/83a2c28\n* https://github.com/python/cpython/blob/c39b52f/Lib/poplib.py#L297-L302\n* https://docs.microsoft.com/windows/win32/api/winsock/nf-winsock-shutdown

\n
\n\n
\n
\ncheroot.errors.plat_specific_errors(*errnames)
\n

Return error numbers for all errors in errnames on this platform.

\n

The errno module contains different global constants\ndepending on the specific platform (OS). This function will return\nthe list of numeric values for a given list of potential names.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.errors.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609ddcd50>, 'js_tag': .js_tag at 0x7f4609ddcf60>}, >) writing output... [ 33%] pkg/cheroot.makefile [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.makefile') [app] emitting event: 'html-page-context'('pkg/cheroot.makefile', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.server', 'cheroot.server module', 'N', 'next'), ('pkg/cheroot.errors', 'cheroot.errors module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.makefile', 'current_page_name': 'pkg/cheroot.makefile', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609ddd9b0>, 'hasdoc': .hasdoc at 0x7f4609dddb10>, 'toctree': . at 0x7f4609dddbc0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.errors.html', 'title': 'cheroot.errors module'}, 'next': {'link': 'cheroot.server.html', 'title': 'cheroot.server module'}, 'title': 'cheroot.makefile module', 'meta': {}, 'body': '
\n

cheroot.makefile module

\n

Socket file object.

\n
\n
\nclass cheroot.makefile.BufferedWriter(raw, buffer_size=131072)
\n

Bases: BufferedWriter

\n

Faux file object attached to a socket object.

\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n
\n_flush_unlocked()
\n
\n\n
\n
\nwrite(b)
\n

Write bytes to buffer.

\n
\n\n
\n\n
\n
\ncheroot.makefile.MakeFile(sock, mode=\'r\', bufsize=131072)
\n

File object attached to a socket object.

\n
\n\n
\n
\nclass cheroot.makefile.StreamReader(sock, mode=\'r\', bufsize=131072)
\n

Bases: BufferedReader

\n

Socket stream reader.

\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n
\nhas_data()
\n

Return true if there is buffered data to read.

\n
\n\n
\n
\nread(*args, **kwargs)
\n

Capture bytes read.

\n
\n\n
\n\n
\n
\nclass cheroot.makefile.StreamWriter(sock, mode=\'w\', bufsize=131072)
\n

Bases: BufferedWriter

\n

Socket stream writer.

\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n
\nwrite(val, *args, **kwargs)
\n

Capture bytes written.

\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.makefile.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609dddc70>, 'js_tag': .js_tag at 0x7f4609ddde80>}, >) writing output... [ 36%] pkg/cheroot.server [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'list'>) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'list'>) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, <#text: 'list'>) [app] emitting event: 'missing-reference'(, >, <#text: 'bytes'>) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.server') [app] emitting event: 'html-page-context'('pkg/cheroot.server', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.testing', 'cheroot.testing module', 'N', 'next'), ('pkg/cheroot.makefile', 'cheroot.makefile module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.server', 'current_page_name': 'pkg/cheroot.server', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609ddd900>, 'hasdoc': .hasdoc at 0x7f460ab6de80>, 'toctree': . at 0x7f460ab6df30>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.makefile.html', 'title': 'cheroot.makefile module'}, 'next': {'link': 'cheroot.testing.html', 'title': 'cheroot.testing module'}, 'title': 'cheroot.server module', 'meta': {}, 'body': '
\n

cheroot.server module

\n

A high-speed, production ready, thread pooled, generic HTTP server.

\n

For those of you wanting to understand internals of this module, here’s the\nbasic call flow. The server’s listening thread runs a very tight loop,\nsticking incoming connections onto a Queue:

\n
server = HTTPServer(...)\nserver.start()\n->  serve()\n    while ready:\n        _connections.run()\n            while not stop_requested:\n                child = socket.accept()  # blocks until a request comes in\n                conn = HTTPConnection(child, ...)\n                server.process_conn(conn)  # adds conn to threadpool\n
\n
\n

Worker threads are kept in a pool and poll the Queue, popping off and then\nhandling each connection in turn. Each connection can consist of an arbitrary\nnumber of requests and their responses, so we run a nested loop:

\n
while True:\n    conn = server.requests.get()\n    conn.communicate()\n    ->  while True:\n            req = HTTPRequest(...)\n            req.parse_request()\n            ->  # Read the Request-Line, e.g. "GET /page HTTP/1.1"\n                req.rfile.readline()\n                read_headers(req.rfile, req.inheaders)\n            req.respond()\n            ->  response = app(...)\n                try:\n                    for chunk in response:\n                        if chunk:\n                            req.write(chunk)\n                finally:\n                    if hasattr(response, "close"):\n                        response.close()\n            if req.close_connection:\n                return\n
\n
\n

For running a server you can invoke start() (it\nwill run the server forever) or use invoking prepare() and serve() like this:

\n
server = HTTPServer(...)\nserver.prepare()\ntry:\n    threading.Thread(target=server.serve).start()\n\n    # waiting/detecting some appropriate stop condition here\n    ...\n\nfinally:\n    server.stop()\n
\n
\n

And now for a trivial doctest to exercise the test suite

\n
>>> 'HTTPServer' in globals()\nTrue\n
\n
\n
\n
\nclass cheroot.server.ChunkedRFile(rfile, maxlen, bufsize=8192)
\n

Bases: object

\n

Wraps a file-like object, returning an empty string when exhausted.

\n

This class is intended to provide a conforming wsgi.input value for\nrequest entities that have been encoded with the ‘chunked’ transfer\nencoding.

\n
\n
Parameters:
\n
    \n
  • rfile – file encoded with the ‘chunked’ transfer encoding

  • \n
  • maxlen (int) – maximum length of the file being read

  • \n
  • bufsize (int) – size of the buffer used to read the file

  • \n
\n
\n
\n
\n
\n_fetch()
\n
\n\n
\n
\nclose()
\n

Release resources allocated for rfile.

\n
\n\n
\n
\nread(size=None)
\n

Read a chunk from rfile buffer and return it.

\n
\n
Parameters:
\n

size (int) – amount of data to read

\n
\n
Returns:
\n

chunk from rfile, limited by size if specified

\n
\n
Return type:
\n

bytes

\n
\n
\n
\n\n
\n
\nread_trailer_lines()
\n

Read HTTP headers and yield them.

\n
\n
Yields:
\n

CRLF separated lines

\n
\n
Ytype:
\n

bytes

\n
\n
\n
\n\n
\n
\nreadline(size=None)
\n

Read a single line from rfile buffer and return it.

\n
\n
Parameters:
\n

size (int) – minimum amount of data to read

\n
\n
Returns:
\n

one line from rfile

\n
\n
Return type:
\n

bytes

\n
\n
\n
\n\n
\n
\nreadlines(sizehint=0)
\n

Read all lines from rfile buffer and return them.

\n
\n
Parameters:
\n

sizehint (int) – hint of minimum amount of data to read

\n
\n
Returns:
\n

lines of bytes read from rfile

\n
\n
Return type:
\n

list[bytes]

\n
\n
\n
\n\n
\n\n
\n
\nclass cheroot.server.DropUnderscoreHeaderReader
\n

Bases: HeaderReader

\n

Custom HeaderReader to exclude any headers with underscores in them.

\n
\n
\n_allow_header(key_name)
\n
\n\n
\n\n
\n
\nclass cheroot.server.Gateway(req)
\n

Bases: object

\n

Base class to interface HTTPServer with other systems, such as WSGI.

\n
\n
\nrespond()
\n

Process the current request. Must be overridden in a subclass.

\n
\n\n
\n\n
\n
\nclass cheroot.server.HTTPConnection(server, sock, makefile=<function MakeFile>)
\n

Bases: object

\n

An HTTP connection (active socket).

\n
\n
\nRequestHandlerClass
\n

alias of HTTPRequest

\n
\n\n
\n
\n_close_kernel_socket()
\n

Terminate the connection at the transport level.

\n
\n\n
\n
\n_conditional_error(req, response)
\n

Respond with an error.

\n

Don’t bother writing if a response\nhas already started being written.

\n
\n\n
\n
\n_handle_no_ssl(req)
\n
\n\n
\n
\nclose()
\n

Close the socket underlying this connection.

\n
\n\n
\n
\ncommunicate()
\n

Read each request and respond appropriately.

\n

Returns true if the connection should be kept open.

\n
\n\n
\n
\nget_peer_creds()
\n

Return the PID/UID/GID tuple of the peer socket for UNIX sockets.

\n

This function uses SO_PEERCRED to query the UNIX PID, UID, GID\nof the peer, which is only available if the bind address is\na UNIX domain socket.

\n
\n
Raises:

NotImplementedError: in case of unsupported socket type\nRuntimeError: in case of SO_PEERCRED lookup unsupported or disabled

\n
\n
\n
\n\n
\n
\nlast_used = None
\n
\n\n
\n
\nlinger = False
\n
\n\n
\n
\nproperty peer_gid
\n

Return the group id of the connected peer process.

\n
\n\n
\n
\nproperty peer_group
\n

Return the group of the connected peer process.

\n
\n\n
\n
\nproperty peer_pid
\n

Return the id of the connected peer process.

\n
\n\n
\n
\nproperty peer_uid
\n

Return the user id of the connected peer process.

\n
\n\n
\n
\nproperty peer_user
\n

Return the username of the connected peer process.

\n
\n\n
\n
\npeercreds_enabled = False
\n
\n\n
\n
\npeercreds_resolve_enabled = False
\n
\n\n
\n
\nrbufsize = 131072
\n
\n\n
\n
\nremote_addr = None
\n
\n\n
\n
\nremote_port = None
\n
\n\n
\n
\nresolve_peer_creds()
\n

Look up the username and group tuple of the PEERCREDS.

\n
\n
Returns:
\n

the username and group tuple of the PEERCREDS

\n
\n
Raises:
\n
    \n
  • NotImplementedError – if the OS is unsupported

  • \n
  • RuntimeError – if UID/GID lookup is unsupported or disabled

  • \n
\n
\n
\n
\n\n
\n
\nssl_env = None
\n
\n\n
\n
\nwbufsize = 131072
\n
\n\n
\n\n
\n
\nclass cheroot.server.HTTPRequest(server, conn, proxy_mode=False, strict_mode=True)
\n

Bases: object

\n

An HTTP Request (and response).

\n

A single HTTP connection may consist of multiple request/response pairs.

\n
\n
\nchunked_write = False
\n

If True, output will be encoded with the “chunked” transfer-coding.

\n

This value is set automatically inside send_headers.

\n
\n\n
\n
\nclose_connection = False
\n

Signals the calling Connection that the request should close. This does\nnot imply an error! The client and/or server may each request that the\nconnection be closed.

\n
\n\n
\n
\nconn = None
\n

The HTTPConnection object on which this request connected.

\n
\n\n
\n
\nensure_headers_sent()
\n

Ensure headers are sent to the client if not already sent.

\n
\n\n
\n
\nheader_reader = <cheroot.server.HeaderReader object>
\n

A HeaderReader instance or compatible reader.

\n
\n\n
\n
\ninheaders = {}
\n

A dict of request headers.

\n
\n\n
\n
\noutheaders = []
\n

A list of header tuples to write in the response.

\n
\n\n
\n
\nparse_request()
\n

Parse the next HTTP request start-line and message-headers.

\n
\n\n
\n
\nread_request_headers()
\n

Read self.rfile into self.inheaders.

\n

Ref: self.inheaders.

\n
\n
Returns:
\n

success status

\n
\n
Return type:
\n

bool

\n
\n
\n
\n\n
\n
\nread_request_line()
\n

Read and parse first line of the HTTP request.

\n
\n
Returns:

bool: True if the request line is valid or False if it’s malformed.

\n
\n
\n
\n\n
\n
\nready = False
\n

When True, the request has been parsed and is ready to begin generating\nthe response. When False, signals the calling Connection that the response\nshould not be generated and the connection should close.

\n
\n\n
\n
\nrespond()
\n

Call the gateway and write its iterable output.

\n
\n\n
\n
\nsend_headers()
\n

Assert, process, and send the HTTP response message-headers.

\n

You must set self.status, and self.outheaders before calling this.

\n
\n\n
\n
\nserver = None
\n

The HTTPServer object which is receiving this request.

\n
\n\n
\n
\nsimple_response(status, msg=\'\')
\n

Write a simple response back to the client.

\n
\n\n
\n
\nwrite(chunk)
\n

Write unbuffered data to the client.

\n
\n\n
\n\n
\n
\nclass cheroot.server.HTTPServer(bind_addr, gateway, minthreads=10, maxthreads=-1, server_name=None, peercreds_enabled=False, peercreds_resolve_enabled=False, reuse_port=False)
\n

Bases: object

\n

An HTTP server.

\n
\n
\nConnectionClass
\n

The class to use for handling HTTP connections.

\n

alias of HTTPConnection

\n
\n\n
\n
\n_bind_addr = \'127.0.0.1\'
\n
\n\n
\n
\n_interrupt = None
\n
\n\n
\n
\nstatic _make_socket_reusable(socket_, bind_addr)
\n
\n\n
\n
\n_run_in_thread()
\n

Context manager for running this server in a thread.

\n
\n\n
\n
\n_serve_unservicable()
\n

Serve connections we can’t handle a 503.

\n
\n\n
\n
\nproperty _stopping_for_interrupt
\n

Return whether the server is responding to an interrupt.

\n
\n\n
\n
\nbind(family, type, proto=0)
\n

Create (or recreate) the actual socket object.

\n
\n\n
\n
\nproperty bind_addr
\n

Return the interface on which to listen for connections.

\n

For TCP sockets, a (host, port) tuple. Host values may be any\nIPv4 or IPv6 address, or any valid hostname.\nThe string ‘localhost’ is a synonym for ‘127.0.0.1’ (or ‘::1’,\nif your hosts file prefers IPv6).\nThe string ‘0.0.0.0’ is a special IPv4 entry meaning\n“any active interface” (INADDR_ANY), and ‘::’ is the similar\nIN6ADDR_ANY for IPv6.\nThe empty string or None are not allowed.

\n

For UNIX sockets, supply the file name as a string.

\n

Systemd socket activation is automatic and doesn’t require tempering\nwith this variable.

\n
\n
IPv4

Internet Protocol version 4

\n
\n
IPv6

Internet Protocol version 6

\n
\n
\n
\n\n
\n
\nstatic bind_socket(socket_, bind_addr)
\n

Bind the socket to given interface.

\n
\n\n
\n
\nbind_unix_socket(bind_addr)
\n

Create (or recreate) a UNIX socket object.

\n
\n\n
\n
\nproperty can_add_keepalive_connection
\n

Flag whether it is allowed to add a new keep-alive connection.

\n
\n\n
\n
\nclear_stats()
\n

Reset server stat counters..

\n
\n\n
\n
\nerror_log(msg=\'\', level=20, traceback=False)
\n

Write error message to log.

\n
\n
Parameters:
\n
    \n
  • msg (str) – error message

  • \n
  • level (int) – logging level

  • \n
  • traceback (bool) – add traceback to output or not

  • \n
\n
\n
\n
\n\n
\n
\nexpiration_interval = 0.5
\n

The interval, in seconds, at which the server checks for\nexpired connections (default 0.5).

\n
\n\n
\n
\ngateway = None
\n

A Gateway instance.

\n
\n\n
\n
\nproperty interrupt
\n

Flag interrupt of the server.

\n
\n\n
\n
\nkeep_alive_conn_limit = 10
\n

Maximum number of waiting keep-alive connections that will be kept open.

\n

Default is 10. Set to None to have unlimited connections.

\n
\n\n
\n
\nmax_request_body_size = 0
\n

The maximum size, in bytes, for request bodies, or 0 for no limit.

\n
\n\n
\n
\nmax_request_header_size = 0
\n

The maximum size, in bytes, for request headers, or 0 for no limit.

\n
\n\n
\n
\nmaxthreads = None
\n

The maximum number of worker threads to create.

\n

(default -1 = no limit)

\n
\n\n
\n
\nminthreads = None
\n

The minimum number of worker threads to create (default 10).

\n
\n\n
\n
\nnodelay = True
\n

If True (the default since 3.1), sets the TCP_NODELAY socket option.

\n
\n\n
\n
\npeercreds_enabled = False
\n

Whether True, peer credentials will be looked up via UNIX\ndomain socket.

\n
\n\n
\n
\npeercreds_resolve_enabled = False
\n

If True, username/group will be looked up in the OS from\nPEERCREDS-provided IDs.

\n
\n\n
\n
\nprepare()
\n

Prepare server to serving requests.

\n

It binds a socket’s port, setups the socket to listen() and does\nother preparing things.

\n
\n\n
\n
\nclassmethod prepare_socket(bind_addr, family, type, proto, nodelay, ssl_adapter, reuse_port=False)
\n

Create and prepare the socket object.

\n
\n\n
\n
\nprocess_conn(conn)
\n

Process an incoming HTTPConnection.

\n
\n\n
\n
\nprotocol = \'HTTP/1.1\'
\n

The version string to write in the Status-Line of all HTTP responses.

\n

For example, “HTTP/1.1” is the default. This also limits the supported\nfeatures used in the response.

\n
\n\n
\n
\nput_conn(conn)
\n

Put an idle connection back into the ConnectionManager.

\n
\n\n
\n
\nready = False
\n

Internal flag which indicating the socket is accepting connections.

\n
\n\n
\n
\nrequest_queue_size = 5
\n

The ‘backlog’ argument to socket.listen().

\n

Maximum queued connections (default 5).

\n
\n\n
\n
\nstatic resolve_real_bind_addr(socket_)
\n

Retrieve actual bind address from bound socket.

\n
\n\n
\n
\nreuse_port = False
\n

If True, set SO_REUSEPORT on the socket.

\n
\n\n
\n
\nruntime()
\n

Return server uptime.

\n
\n\n
\n
\nsafe_start()
\n

Run the server forever, and stop it cleanly on exit.

\n
\n\n
\n
\nserve()
\n

Serve requests, after invoking prepare().

\n
\n\n
\n
\nserver_name = None
\n

The name of the server; defaults to self.version.

\n
\n\n
\n
\nshutdown_timeout = 5
\n

The total time to wait for worker threads to cleanly exit.

\n

Specified in seconds.

\n
\n\n
\n
\nsoftware = None
\n

The value to set for the SERVER_SOFTWARE entry in the WSGI environ.

\n

If None, this defaults to \'%s Server\' % self.version.

\n
\n\n
\n
\nssl_adapter = None
\n

An instance of ssl.Adapter (or a subclass).

\n

Ref: ssl.Adapter.

\n

You must have the corresponding TLS driver library installed.

\n
\n\n
\n
\nstart()
\n

Run the server forever.

\n

It is shortcut for invoking prepare() then serve().

\n
\n\n
\n
\nstop()
\n

Gracefully shutdown a server that is serving forever.

\n
\n\n
\n
\ntimeout = 10
\n

The timeout in seconds for accepted connections (default 10).

\n
\n\n
\n
\nversion = \'Cheroot/11.1.0\'
\n

A version string for the HTTPServer.

\n
\n\n
\n\n
\n
\nclass cheroot.server.HeaderReader
\n

Bases: object

\n

Object for reading headers from an HTTP request.

\n

Interface and default implementation.

\n
\n
\n_allow_header(key_name)
\n
\n\n
\n
\n_transform_key(key_name)
\n
\n\n
\n\n
\n
\nclass cheroot.server.KnownLengthRFile(rfile, content_length)
\n

Bases: object

\n

Wraps a file-like object, returning an empty string when exhausted.

\n
\n
Parameters:
\n
    \n
  • rfilefile of a known size

  • \n
  • content_length (int) – length of the file being read

  • \n
\n
\n
\n
\n
\nclose()
\n

Release resources allocated for rfile.

\n
\n\n
\n
\nnext()
\n

Generate next file chunk.

\n
\n\n
\n
\nread(size=None)
\n

Read a chunk from rfile buffer and return it.

\n
\n
Parameters:
\n

size (int) – amount of data to read

\n
\n
Return type:
\n

bytes

\n
\n
Returns:
\n

chunk from rfile, limited by size if specified

\n
\n
\n
\n\n
\n
\nreadline(size=None)
\n

Read a single line from rfile buffer and return it.

\n
\n
Parameters:
\n

size (int) – minimum amount of data to read

\n
\n
Returns:
\n

one line from rfile

\n
\n
Return type:
\n

bytes

\n
\n
\n
\n\n
\n
\nreadlines(sizehint=0)
\n

Read all lines from rfile buffer and return them.

\n
\n
Parameters:
\n

sizehint (int) – hint of minimum amount of data to read

\n
\n
Returns:
\n

lines of bytes read from rfile

\n
\n
Return type:
\n

list[bytes]

\n
\n
\n
\n\n
\n\n
\n
\nclass cheroot.server.SizeCheckWrapper(rfile, maxlen)
\n

Bases: object

\n

Wraps a file-like object, raising MaxSizeExceeded if too large.

\n
\n
Parameters:
\n
    \n
  • rfilefile of a limited size

  • \n
  • maxlen (int) – maximum length of the file being read

  • \n
\n
\n
\n
\n
\n_check_length()
\n
\n\n
\n
\nclose()
\n

Release resources allocated for rfile.

\n
\n\n
\n
\nnext()
\n

Generate next file chunk.

\n
\n\n
\n
\nread(size=None)
\n

Read a chunk from rfile buffer and return it.

\n
\n
Parameters:
\n

size (int) – amount of data to read

\n
\n
Returns:
\n

chunk from rfile, limited by size if specified

\n
\n
Return type:
\n

bytes

\n
\n
\n
\n\n
\n
\nreadline(size=None)
\n

Read a single line from rfile buffer and return it.

\n
\n
Parameters:
\n

size (int) – minimum amount of data to read

\n
\n
Returns:
\n

one line from rfile

\n
\n
Return type:
\n

bytes

\n
\n
\n
\n\n
\n
\nreadlines(sizehint=0)
\n

Read all lines from rfile buffer and return them.

\n
\n
Parameters:
\n

sizehint (int) – hint of minimum amount of data to read

\n
\n
Returns:
\n

lines of bytes read from rfile

\n
\n
Return type:
\n

list[bytes]

\n
\n
\n
\n\n
\n\n
\n
\ncheroot.server.get_ssl_adapter_class(name=\'builtin\')
\n

Return an SSL adapter class for the given name.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.server.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460ab6dfe0>, 'js_tag': .js_tag at 0x7f460ab6e1f0>}, >) writing output... [ 39%] pkg/cheroot.ssl [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.ssl') [app] emitting event: 'html-page-context'('pkg/cheroot.ssl', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.ssl.builtin', 'cheroot.ssl.builtin module', 'N', 'next'), ('pkg/cheroot', 'cheroot package', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.ssl', 'current_page_name': 'pkg/cheroot.ssl', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460ab6ecf0>, 'hasdoc': .hasdoc at 0x7f460ab6ef00>, 'toctree': . at 0x7f460ab6f060>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.html', 'title': 'cheroot package'}, 'next': {'link': 'cheroot.ssl.builtin.html', 'title': 'cheroot.ssl.builtin module'}, 'title': 'cheroot.ssl package', 'meta': {}, 'body': '
\n

cheroot.ssl package

\n
\n

Submodules

\n
\n\n
\n
\n
\n

Module contents

\n

Implementation of the SSL adapter base interface.

\n
\n
\nclass cheroot.ssl.Adapter(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)
\n

Bases: ABC

\n

Base class for SSL driver library adapters.

\n

Required methods:

\n
\n
    \n
  • wrap(sock) -> (wrapped socket, ssl environ dict)

  • \n
  • makefile(sock, mode=\'r\', bufsize=DEFAULT_BUFFER_SIZE) ->\nsocket file object

  • \n
\n
\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n
\nabstractmethod bind(sock)
\n

Wrap and return the given socket.

\n
\n\n
\n
\nabstractmethod get_environ()
\n

Return WSGI environ entries to be merged into each request.

\n
\n\n
\n
\nabstractmethod makefile(sock, mode=\'r\', bufsize=-1)
\n

Return socket file object.

\n
\n\n
\n
\nabstractmethod wrap(sock)
\n

Wrap and return the given socket, plus WSGI environ entries.

\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.ssl.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460ab6f110>, 'js_tag': .js_tag at 0x7f460ab6f320>}, >) writing output... [ 42%] pkg/cheroot.ssl.builtin [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.ssl.builtin') [app] emitting event: 'html-page-context'('pkg/cheroot.ssl.builtin', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.ssl.pyopenssl', 'cheroot.ssl.pyopenssl module', 'N', 'next'), ('pkg/cheroot.ssl', 'cheroot.ssl package', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.ssl.html', 'title': 'cheroot.ssl package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.ssl.builtin', 'current_page_name': 'pkg/cheroot.ssl.builtin', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609bb43b0>, 'hasdoc': .hasdoc at 0x7f4609bb4460>, 'toctree': . at 0x7f4609bb45c0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.ssl.html', 'title': 'cheroot.ssl package'}, 'next': {'link': 'cheroot.ssl.pyopenssl.html', 'title': 'cheroot.ssl.pyopenssl module'}, 'title': 'cheroot.ssl.builtin module', 'meta': {}, 'body': '
\n

cheroot.ssl.builtin module

\n

A library for integrating Python’s builtin ssl library with Cheroot.

\n

The ssl module must be importable for SSL functionality.

\n

To use this module, set HTTPServer.ssl_adapter to an instance of\nBuiltinSSLAdapter.

\n
\n
\nclass cheroot.ssl.builtin.BuiltinSSLAdapter(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)
\n

Bases: Adapter

\n

Wrapper for integrating Python’s builtin ssl with Cheroot.

\n
\n
\nCERT_KEY_TO_ENV = {\'issuer\': \'I_DN\', \'notAfter\': \'V_END\', \'notBefore\': \'V_START\', \'serialNumber\': \'M_SERIAL\', \'subject\': \'S_DN\', \'subjectAltName\': \'SAN\', \'version\': \'M_VERSION\'}
\n
\n\n
\n
\nCERT_KEY_TO_LDAP_CODE = {\'commonName\': \'CN\', \'countryName\': \'C\', \'description\': \'D\', \'emailAddress\': \'Email\', \'givenName\': \'G\', \'initials\': \'I\', \'localityName\': \'L\', \'organizationName\': \'O\', \'organizationalUnitName\': \'OU\', \'stateOrProvinceName\': \'ST\', \'surname\': \'S\', \'title\': \'T\', \'userid\': \'UID\'}
\n
\n\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n
\n_make_env_cert_dict(env_prefix, parsed_cert)
\n

Return a dict of WSGI environment variables for a certificate.

\n

E.g. SSL_CLIENT_M_VERSION, SSL_CLIENT_M_SERIAL, etc.\nSee https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars.

\n
\n\n
\n
\n_make_env_dn_dict(env_prefix, cert_value)
\n

Return a dict of WSGI environment variables for a certificate DN.

\n

E.g. SSL_CLIENT_S_DN_CN, SSL_CLIENT_S_DN_C, etc.\nSee SSL_CLIENT_S_DN_x509 at\nhttps://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars.

\n
\n\n
\n
\n_make_env_san_dict(env_prefix, cert_value)
\n

Return a dict of WSGI environment variables for a certificate DN.

\n

E.g. SSL_CLIENT_SAN_Email_0, SSL_CLIENT_SAN_DNS_0, etc.\nSee SSL_CLIENT_SAN_* at\nhttps://httpd.apache.org/docs/2.4/mod/mod_ssl.html#envvars.

\n
\n\n
\n
\nbind(sock)
\n

Wrap and return the given socket.

\n
\n\n
\n
\ncertificate = None
\n

The file name of the server SSL certificate.

\n
\n\n
\n
\ncertificate_chain = None
\n

The file name of the certificate chain file.

\n
\n\n
\n
\nciphers = None
\n

The ciphers list of SSL.

\n
\n\n
\n
\nproperty context
\n

SSLContext that will be used to wrap sockets.

\n
\n\n
\n
\nget_environ(sock)
\n

Create WSGI environ entries to be merged into each request.

\n
\n\n
\n
\nmakefile(sock, mode=\'r\', bufsize=131072)
\n

Return socket file object.

\n
\n\n
\n
\nprivate_key = None
\n

The file name of the server’s private key file.

\n
\n\n
\n
\nprivate_key_password = None
\n

Optional passphrase for password protected private key.

\n
\n\n
\n
\nwrap(sock)
\n

Wrap and return the given socket, plus WSGI environ entries.

\n
\n\n
\n\n
\n
\ncheroot.ssl.builtin._assert_ssl_exc_contains(exc, *msgs)
\n

Check whether SSL exception contains either of messages provided.

\n
\n\n
\n
\ncheroot.ssl.builtin._loopback_for_cert(certificate, private_key, certificate_chain, *, private_key_password=None)
\n

Create a loopback connection to parse a cert with a private key.

\n
\n\n
\n
\ncheroot.ssl.builtin._loopback_for_cert_thread(context, server)
\n

Wrap a socket in ssl and perform the server-side handshake.

\n
\n\n
\n
\ncheroot.ssl.builtin._parse_cert(certificate, private_key, certificate_chain, *, private_key_password=None)
\n

Parse a certificate.

\n
\n\n
\n
\ncheroot.ssl.builtin._sni_callback(sock, sni, context)
\n

Handle the SNI callback to tag the socket with the SNI.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.ssl.builtin.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609bb4670>, 'js_tag': .js_tag at 0x7f4609bb4880>}, >) writing output... [ 44%] pkg/cheroot.ssl.pyopenssl [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.ssl.pyopenssl') [app] emitting event: 'html-page-context'('pkg/cheroot.ssl.pyopenssl', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test', 'cheroot.test package', 'N', 'next'), ('pkg/cheroot.ssl.builtin', 'cheroot.ssl.builtin module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.ssl.html', 'title': 'cheroot.ssl package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.ssl.pyopenssl', 'current_page_name': 'pkg/cheroot.ssl.pyopenssl', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609bb4300>, 'hasdoc': .hasdoc at 0x7f4609bb7690>, 'toctree': . at 0x7f4609bb77f0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.ssl.builtin.html', 'title': 'cheroot.ssl.builtin module'}, 'next': {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}, 'title': 'cheroot.ssl.pyopenssl module', 'meta': {}, 'body': '
\n

cheroot.ssl.pyopenssl module

\n

A library for integrating pyOpenSSL with Cheroot.

\n

The OpenSSL module must be importable\nfor SSL/TLS/HTTPS functionality.\nYou can obtain it from here.

\n

To use this module, set HTTPServer.ssl_adapter to an instance of\nssl.Adapter.\nThere are two ways to use TLS:

\n
\n

Method One

\n
\n
\n
\n

If this is not None, it is assumed to be an SSL.Context instance, and will be passed to\nSSL.Connection on bind().\nThe developer is responsible for forming a valid Context object. This\napproach is to be preferred for more flexibility, e.g. if the cert and\nkey are streams instead of files, or need decryption, or\nSSL.SSLv3_METHOD\nis desired instead of the default SSL.SSLv23_METHOD, etc. Consult\nthe pyOpenSSL documentation for\ncomplete options.

\n
\n
\n

Method Two (shortcut)

\n
\n
\n
\n

Both are None by default. If ssl_adapter.context is None,\nbut .private_key and .certificate are both given and valid, they\nwill be read, and the context will be automatically created from them.

\n
\n
\n
\nclass cheroot.ssl.pyopenssl.SSLConnection(*args)
\n

Bases: object

\n

A thread-safe wrapper for an SSL.Connection.

\n
\n
Parameters:
\n

args (tuple) – the arguments to create the wrapped SSL.Connection(*args)

\n
\n
\n
\n
\naccept(*args)
\n
\n\n
\n
\nbind(*args)
\n
\n\n
\n
\nclose(*args)
\n
\n\n
\n
\nconnect(*args)
\n
\n\n
\n
\nconnect_ex(*args)
\n
\n\n
\n
\nproperty family
\n
\n\n
\n
\nfileno(*args)
\n
\n\n
\n
\nget_app_data(*args)
\n
\n\n
\n
\nget_cipher_list(*args)
\n
\n\n
\n
\nget_context(*args)
\n
\n\n
\n
\nget_peer_certificate(*args)
\n
\n\n
\n
\ngetpeername(*args)
\n
\n\n
\n
\ngetsockname(*args)
\n
\n\n
\n
\ngetsockopt(*args)
\n
\n\n
\n
\ngettimeout(*args)
\n
\n\n
\n
\nlisten(*args)
\n
\n\n
\n
\nmakefile(*args)
\n
\n\n
\n
\npending(*args)
\n
\n\n
\n
\nread(*args)
\n
\n\n
\n
\nrecv(*args)
\n
\n\n
\n
\nrenegotiate(*args)
\n
\n\n
\n
\nsend(*args)
\n
\n\n
\n
\nsendall(*args)
\n
\n\n
\n
\nset_accept_state(*args)
\n
\n\n
\n
\nset_app_data(*args)
\n
\n\n
\n
\nset_connect_state(*args)
\n
\n\n
\n
\nsetblocking(*args)
\n
\n\n
\n
\nsetsockopt(*args)
\n
\n\n
\n
\nsettimeout(*args)
\n
\n\n
\n
\nshutdown(*args)
\n
\n\n
\n
\nsock_shutdown(*args)
\n
\n\n
\n
\nstate_string(*args)
\n
\n\n
\n
\nwant_read(*args)
\n
\n\n
\n
\nwant_write(*args)
\n
\n\n
\n
\nwrite(*args)
\n
\n\n
\n\n
\n
\nclass cheroot.ssl.pyopenssl.SSLConnectionProxyMeta(name, bases, nmspc)
\n

Bases: object

\n

Metaclass for generating a bunch of proxy methods.

\n
\n\n
\n
\nclass cheroot.ssl.pyopenssl.SSLFileobjectMixin
\n

Bases: object

\n

Base mixin for a TLS socket stream.

\n
\n
\n_safe_call(is_reader, call, *args, **kwargs)
\n

Wrap the given call with TLS error-trapping.

\n

is_reader: if False EOF errors will be raised. If True, EOF errors\nwill return “” (to emulate normal sockets).

\n
\n\n
\n
\nreadline(size=-1)
\n

Receive message of a size from the socket.

\n

Matches the following interface:\nhttps://docs.python.org/3/library/io.html#io.IOBase.readline

\n
\n\n
\n
\nrecv(size)
\n

Receive message of a size from the socket.

\n
\n\n
\n
\nsend(*args, **kwargs)
\n

Send some part of message to the socket.

\n
\n\n
\n
\nsendall(*args, **kwargs)
\n

Send whole message to the socket.

\n
\n\n
\n
\nssl_retry = 0.01
\n
\n\n
\n
\nssl_timeout = 3
\n
\n\n
\n\n
\n
\nclass cheroot.ssl.pyopenssl.SSLFileobjectStreamReader(sock, mode=\'r\', bufsize=131072)
\n

Bases: SSLFileobjectMixin, StreamReader

\n

SSL file object attached to a socket object.

\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n\n
\n
\nclass cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter(sock, mode=\'w\', bufsize=131072)
\n

Bases: SSLFileobjectMixin, StreamWriter

\n

SSL file object attached to a socket object.

\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n\n
\n
\nclass cheroot.ssl.pyopenssl.pyOpenSSLAdapter(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)
\n

Bases: Adapter

\n

A wrapper for integrating pyOpenSSL.

\n
\n
\n_abc_impl = <_abc._abc_data object>
\n
\n\n
\n
\n_password_callback(password_max_length, _verify_twice, password, /)
\n

Pass a passphrase to password protected private key.

\n
\n\n
\n
\nbind(sock)
\n

Wrap and return the given socket.

\n
\n\n
\n
\ncertificate = None
\n

The file name of the server’s TLS certificate.

\n
\n\n
\n
\ncertificate_chain = None
\n

Optional. The file name of CA’s intermediate certificate bundle.

\n

This is needed for cheaper “chained root” TLS certificates,\nand should be left as None if not required.

\n
\n\n
\n
\nciphers = None
\n

The ciphers list of TLS.

\n
\n\n
\n
\ncontext = None
\n

An instance of SSL.Context.

\n
\n\n
\n
\nget_context()
\n

Return an SSL.Context from self attributes.

\n

Ref: SSL.Context

\n
\n\n
\n
\nget_environ()
\n

Return WSGI environ entries to be merged into each request.

\n
\n\n
\n
\nmakefile(sock, mode=\'r\', bufsize=-1)
\n

Return socket file object.

\n
\n\n
\n
\nprivate_key = None
\n

The file name of the server’s private key file.

\n
\n\n
\n
\nprivate_key_password = None
\n

Optional passphrase for password protected private key.

\n
\n\n
\n
\nwrap(sock)
\n

Wrap and return the given socket, plus WSGI environ entries.

\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.ssl.pyopenssl.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609bb78a0>, 'js_tag': .js_tag at 0x7f4609bb7ab0>}, >) writing output... [ 47%] pkg/cheroot.test [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test') [app] emitting event: 'html-page-context'('pkg/cheroot.test', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test._pytest_plugin', 'cheroot.test._pytest_plugin module', 'N', 'next'), ('pkg/cheroot.ssl.pyopenssl', 'cheroot.ssl.pyopenssl module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test', 'current_page_name': 'pkg/cheroot.test', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609979e80>, 'hasdoc': .hasdoc at 0x7f4609979f30>, 'toctree': . at 0x7f4609979fe0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.ssl.pyopenssl.html', 'title': 'cheroot.ssl.pyopenssl module'}, 'next': {'link': 'cheroot.test._pytest_plugin.html', 'title': 'cheroot.test._pytest_plugin module'}, 'title': 'cheroot.test package', 'meta': {}, 'body': '
\n

cheroot.test package

\n
\n

Submodules

\n
\n\n
\n
\n
\n

Module contents

\n

Cheroot test suite.

\n
\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460997a090>, 'js_tag': .js_tag at 0x7f460997a2a0>}, >) writing output... [ 50%] pkg/cheroot.test._pytest_plugin [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test._pytest_plugin') [app] emitting event: 'html-page-context'('pkg/cheroot.test._pytest_plugin', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.conftest', 'cheroot.test.conftest module', 'N', 'next'), ('pkg/cheroot.test', 'cheroot.test package', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test._pytest_plugin', 'current_page_name': 'pkg/cheroot.test._pytest_plugin', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609978250>, 'hasdoc': .hasdoc at 0x7f460997a980>, 'toctree': . at 0x7f460997aae0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}, 'next': {'link': 'cheroot.test.conftest.html', 'title': 'cheroot.test.conftest module'}, 'title': 'cheroot.test._pytest_plugin module', 'meta': {}, 'body': '
\n

cheroot.test._pytest_plugin module

\n

Local pytest plugin.

\n

Contains hooks, which are tightly bound to the Cheroot framework\nitself, useless for end-users’ app testing.

\n
\n
\ncheroot.test._pytest_plugin.pytest_load_initial_conftests(early_config, parser, args)
\n

Drop unfilterable warning ignores.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test._pytest_plugin.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460997a8d0>, 'js_tag': .js_tag at 0x7f460997acf0>}, >) writing output... [ 53%] pkg/cheroot.test.conftest [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.conftest') [app] emitting event: 'html-page-context'('pkg/cheroot.test.conftest', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.helper', 'cheroot.test.helper module', 'N', 'next'), ('pkg/cheroot.test._pytest_plugin', 'cheroot.test._pytest_plugin module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.conftest', 'current_page_name': 'pkg/cheroot.test.conftest', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460997aa30>, 'hasdoc': .hasdoc at 0x7f460997b7f0>, 'toctree': . at 0x7f460997b950>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test._pytest_plugin.html', 'title': 'cheroot.test._pytest_plugin module'}, 'next': {'link': 'cheroot.test.helper.html', 'title': 'cheroot.test.helper module'}, 'title': 'cheroot.test.conftest module', 'meta': {}, 'body': '
\n

cheroot.test.conftest module

\n

Pytest configuration module.

\n

Contains fixtures, which are tightly bound to the Cheroot framework\nitself, useless for end-users’ app testing.

\n
\n
\ncheroot.test.conftest.http_request_timeout()
\n

Return a common HTTP request timeout for tests with queries.

\n
\n\n
\n
\ncheroot.test.conftest.http_server()
\n

Provision a server creator as a fixture.

\n
\n\n
\n
\ncheroot.test.conftest.make_http_server(bind_addr)
\n

Create and start an HTTP server bound to bind_addr.

\n
\n\n
\n
\ncheroot.test.conftest.native_server_client(native_server)
\n

Create a test client out of given HTTP server.

\n
\n\n
\n
\ncheroot.test.conftest.native_server_thread(thread_and_native_server)
\n

Set up and tear down a Cheroot HTTP server instance.

\n

This exposes the server thread.

\n
\n\n
\n
\ncheroot.test.conftest.wsgi_server_client(wsgi_server)
\n

Create a test client out of given WSGI server.

\n
\n\n
\n
\ncheroot.test.conftest.wsgi_server_thread(thread_and_wsgi_server)
\n

Set up and tear down a Cheroot WSGI server instance.

\n

This exposes the server thread.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.conftest.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460997ba00>, 'js_tag': .js_tag at 0x7f460997bc10>}, >) writing output... [ 56%] pkg/cheroot.test.helper [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.helper') [app] emitting event: 'html-page-context'('pkg/cheroot.test.helper', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test__compat', 'cheroot.test.test__compat module', 'N', 'next'), ('pkg/cheroot.test.conftest', 'cheroot.test.conftest module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.helper', 'current_page_name': 'pkg/cheroot.test.helper', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609644300>, 'hasdoc': .hasdoc at 0x7f4609644b40>, 'toctree': . at 0x7f4609644ca0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.conftest.html', 'title': 'cheroot.test.conftest module'}, 'next': {'link': 'cheroot.test.test__compat.html', 'title': 'cheroot.test.test__compat module'}, 'title': 'cheroot.test.helper module', 'meta': {}, 'body': '
\n

cheroot.test.helper module

\n

A library of helper functions for the Cheroot test suite.

\n
\n
\nclass cheroot.test.helper.CherootWebCase(methodName=\'runTest\')
\n

Bases: WebCase

\n

Helper class for a web app test suite.

\n
\n
\n_classSetupFailed = False
\n
\n\n
\n
\n_class_cleanups = []
\n
\n\n
\n
\nassertEqualDates(dt1, dt2, seconds=None)
\n

Assert abs(dt1 - dt2) is within Y seconds.

\n
\n\n
\n
\navailable_servers = {\'native\': <class \'cheroot.server.HTTPServer\'>, \'wsgi\': <class \'cheroot.wsgi.Server\'>}
\n
\n\n
\n
\ndate_tolerance = 2
\n
\n\n
\n
\nscheme = \'http\'
\n
\n\n
\n
\nscript_name = \'\'
\n
\n\n
\n
\nclassmethod setup_class()
\n

Create and run one HTTP server per class.

\n
\n\n
\n
\nclassmethod start()
\n

Load and start the HTTP server.

\n
\n\n
\n
\nclassmethod stop()
\n

Terminate HTTP server.

\n
\n\n
\n
\nclassmethod teardown_class()
\n

Cleanup HTTP server.

\n
\n\n
\n\n
\n
\nclass cheroot.test.helper.Controller
\n

Bases: object

\n

WSGI app for tests.

\n
\n\n
\n
\nclass cheroot.test.helper.Request(environ)
\n

Bases: object

\n

HTTP request container.

\n
\n\n
\n
\nclass cheroot.test.helper.Response
\n

Bases: object

\n

HTTP response container.

\n
\n
\noutput()
\n

Generate iterable response body object.

\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.helper.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609644d50>, 'js_tag': .js_tag at 0x7f4609644f60>}, >) writing output... [ 58%] pkg/cheroot.test.test__compat [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test__compat') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test__compat', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_cli', 'cheroot.test.test_cli module', 'N', 'next'), ('pkg/cheroot.test.helper', 'cheroot.test.helper module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test__compat', 'current_page_name': 'pkg/cheroot.test.test__compat', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f46096449e0>, 'hasdoc': .hasdoc at 0x7f4609645640>, 'toctree': . at 0x7f4609645850>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.helper.html', 'title': 'cheroot.test.helper module'}, 'next': {'link': 'cheroot.test.test_cli.html', 'title': 'cheroot.test.test_cli module'}, 'title': 'cheroot.test.test__compat module', 'meta': {}, 'body': '
\n

cheroot.test.test__compat module

\n

Test suite for cross-python compatibility helpers.

\n
\n
\ncheroot.test.test__compat.test_compat_functions_negative_nonnative(func)
\n

Check that compatibility functions fail loudly for incorrect input.

\n
\n\n
\n
\ncheroot.test.test__compat.test_compat_functions_positive(func, inp, out)
\n

Check that compatibility functions work with correct input.

\n
\n\n
\n
\ncheroot.test.test__compat.test_extract_bytes(input_argument, expected_result)
\n

Check that legitimate inputs produce bytes.

\n
\n\n
\n
\ncheroot.test.test__compat.test_extract_bytes_invalid()
\n

Ensure that invalid input causes exception to be raised.

\n
\n\n
\n
\ncheroot.test.test__compat.test_ntou_escape()
\n

Check that ntou supports escape-encoding under Python 2.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test__compat.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609645900>, 'js_tag': .js_tag at 0x7f4609645b10>}, >) writing output... [ 61%] pkg/cheroot.test.test_cli [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_cli') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_cli', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_conn', 'cheroot.test.test_conn module', 'N', 'next'), ('pkg/cheroot.test.test__compat', 'cheroot.test.test__compat module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_cli', 'current_page_name': 'pkg/cheroot.test.test_cli', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609645430>, 'hasdoc': .hasdoc at 0x7f46096441a0>, 'toctree': . at 0x7f4609645fe0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test__compat.html', 'title': 'cheroot.test.test__compat module'}, 'next': {'link': 'cheroot.test.test_conn.html', 'title': 'cheroot.test.test_conn module'}, 'title': 'cheroot.test.test_cli module', 'meta': {}, 'body': '
\n

cheroot.test.test_cli module

\n

Tests to verify the command line interface.

\n
\n
\ncheroot.test.test_cli.test_Aplication_resolve(app_name, app_method, wsgi_app)
\n

Check the wsgi application name conversion.

\n
\n\n
\n
\ncheroot.test.test_cli.test_parse_wsgi_bind_addr(raw_bind_addr, expected_bind_addr)
\n

Check the parsing of the –bind option.

\n

Verify some of the supported addresses and the expected return value.

\n
\n\n
\n
\ncheroot.test.test_cli.wsgi_app(monkeypatch)
\n

Return a WSGI app stub.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_cli.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f4609646140>, 'js_tag': .js_tag at 0x7f4609646350>}, >) writing output... [ 64%] pkg/cheroot.test.test_conn [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_conn') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_conn', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_core', 'cheroot.test.test_core module', 'N', 'next'), ('pkg/cheroot.test.test_cli', 'cheroot.test.test_cli module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_conn', 'current_page_name': 'pkg/cheroot.test.test_conn', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460a9a4a90>, 'hasdoc': .hasdoc at 0x7f460a9a54e0>, 'toctree': . at 0x7f460a9a5220>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_cli.html', 'title': 'cheroot.test.test_cli module'}, 'next': {'link': 'cheroot.test.test_core.html', 'title': 'cheroot.test.test_core module'}, 'title': 'cheroot.test.test_conn module', 'meta': {}, 'body': '
\n

cheroot.test.test_conn module

\n

Tests for TCP connection handling, including proper and timely close.

\n
\n
\nclass cheroot.test.test_conn.Controller
\n

Bases: Controller

\n

Controller for serving WSGI apps.

\n
\n
\nhandlers = {\'/custom/204\': <function WSGICallables.custom_204>, \'/custom/304\': <function WSGICallables.custom_304>, \'/err_before_read\': <function WSGICallables.err_before_read>, \'/hello\': <function WSGICallables.hello>, \'/one_megabyte_of_a\': <function WSGICallables.one_megabyte_of_a>, \'/page1\': <function WSGICallables.pov>, \'/page2\': <function WSGICallables.pov>, \'/page3\': <function WSGICallables.pov>, \'/pov\': <function WSGICallables.pov>, \'/stream\': <function WSGICallables.stream>, \'/upload\': <function WSGICallables.upload>, \'/wrong_cl_buffered\': <function WSGICallables.wrong_cl_buffered>, \'/wrong_cl_unbuffered\': <function WSGICallables.wrong_cl_unbuffered>}
\n
\n\n
\n\n
\n
\nclass cheroot.test.test_conn.ErrorLogMonitor
\n

Bases: object

\n

Mock class to access the server error_log calls made by the server.

\n
\n
\nclass ErrorLogCall(msg, level, traceback)
\n

Bases: tuple

\n
\n
\n_asdict()
\n

Return a new dict which maps field names to their values.

\n
\n\n
\n
\n_field_defaults = {}
\n
\n\n
\n
\n_fields = (\'msg\', \'level\', \'traceback\')
\n
\n\n
\n
\nclassmethod _make(iterable)
\n

Make a new ErrorLogCall object from a sequence or iterable

\n
\n\n
\n
\n_replace(**kwds)
\n

Return a new ErrorLogCall object replacing specified fields with new values

\n
\n\n
\n
\nlevel
\n

Alias for field number 1

\n
\n\n
\n
\nmsg
\n

Alias for field number 0

\n
\n\n
\n
\ntraceback
\n

Alias for field number 2

\n
\n\n
\n\n
\n\n
\n
\nclass cheroot.test.test_conn.FaultyGetMap(original_get_map)
\n

Bases: object

\n

Mock class to insert errors in the selector.get_map method.

\n
\n\n
\n
\nclass cheroot.test.test_conn.FaultySelect(original_select)
\n

Bases: object

\n

Mock class to insert errors in the selector.select method.

\n
\n\n
\n
\nclass cheroot.test.test_conn.WSGICallables
\n

Bases: object

\n

Standalone WSGI apps.

\n
\n
\nstatic _munge(string)
\n

Encode PATH_INFO correctly depending on Python version.

\n

WSGI 1.0 is a mess around Unicode. Create endpoints\nthat match the PATH_INFO that it produces.

\n
\n\n
\n
\nstatic custom_204(req, resp)
\n

Render response with status 204.

\n
\n\n
\n
\nstatic custom_304(req, resp)
\n

Render response with status 304.

\n
\n\n
\n
\nstatic err_before_read(req, resp)
\n

Render response with status 500.

\n
\n\n
\n
\nstatic hello(req, resp)
\n

Render Hello world.

\n
\n\n
\n
\nstatic one_megabyte_of_a(req, resp)
\n

Render 1MB response.

\n
\n\n
\n
\nstatic pov(req, resp)
\n

Render pov value.

\n
\n\n
\n
\nstatic stream(req, resp)
\n

Render streaming response.

\n
\n\n
\n
\nstatic upload(req, resp)
\n

Process file upload and render thank.

\n
\n\n
\n
\nstatic wrong_cl_buffered(req, resp)
\n

Render buffered response with invalid length value.

\n
\n\n
\n
\nstatic wrong_cl_unbuffered(req, resp)
\n

Render unbuffered response with invalid length value.

\n
\n\n
\n\n
\n
\ncheroot.test.test_conn.header_exists(header_name, headers)
\n

Check that a header is present.

\n
\n\n
\n
\ncheroot.test.test_conn.header_has_value(header_name, header_value, headers)
\n

Check that a header with a given value is present.

\n
\n\n
\n
\ncheroot.test.test_conn.raw_testing_server(wsgi_server_client)
\n

Attach a WSGI app to the given server and preconfigure it.

\n
\n\n
\n
\ncheroot.test.test_conn.test_100_Continue(test_client)
\n

Test 100-continue header processing.

\n
\n\n
\n
\ncheroot.test.test_conn.test_598(test_client)
\n

Test serving large file with a read timeout in place.

\n
\n\n
\n
\ncheroot.test.test_conn.test_Chunked_Encoding(test_client)
\n

Test HTTP uploads with chunked transfer-encoding.

\n
\n\n
\n
\ncheroot.test.test_conn.test_Content_Length_in(test_client)
\n

Try a non-chunked request where Content-Length exceeds limit.

\n

(server.max_request_body_size).\nAssert error before body send.

\n
\n\n
\n
\ncheroot.test.test_conn.test_Content_Length_not_int(test_client)
\n

Test that malicious Content-Length header returns 400.

\n
\n\n
\n
\ncheroot.test.test_conn.test_Content_Length_out(test_client, uri, expected_resp_status, expected_resp_body)
\n

Test response with Content-Length less than the response body.

\n

(non-chunked response)

\n
\n\n
\n
\ncheroot.test.test_conn.test_HTTP11_Timeout(test_client, timeout_before_headers)
\n

Check timeout without sending any data.

\n

The server will close the connection with a 408.

\n
\n\n
\n
\ncheroot.test.test_conn.test_HTTP11_Timeout_after_request(test_client)
\n

Check timeout after at least one request has succeeded.

\n

The server should close the connection without 408.

\n
\n\n
\n
\ncheroot.test.test_conn.test_HTTP11_persistent_connections(test_client)
\n

Test persistent HTTP/1.1 connections.

\n
\n\n
\n
\ncheroot.test.test_conn.test_HTTP11_pipelining(test_client)
\n

Test HTTP/1.1 pipelining.

\n

http.client doesn’t support this directly.

\n
\n\n
\n
\ncheroot.test.test_conn.test_No_CRLF(test_client, invalid_terminator)
\n

Test HTTP queries with no valid CRLF terminators.

\n
\n\n
\n
\ncheroot.test.test_conn.test_No_Message_Body(test_client)
\n

Test HTTP queries with an empty response body.

\n
\n\n
\n
\ncheroot.test.test_conn.test_broken_connection_during_http_communication_fallback(monkeypatch, test_client, testing_server, wsgi_server_thread)
\n

Test that unhandled internal error cascades into shutdown.

\n
\n\n
\n
\ncheroot.test.test_conn.test_broken_connection_during_tcp_fin(error_number, exception_leaks, mocker, monkeypatch, simulated_exception, test_client)
\n

Test there’s no traceback on broken connection during close.

\n

It artificially causes ECONNRESET /\nEPIPE / ESHUTDOWN /\nENOTCONN as well as unrelated RuntimeError\nand socket.error(-1) on the server socket when\nsocket.shutdown() is called. It’s\ntriggered by closing the client socket before the server had a chance\nto respond.

\n

The expectation is that only RuntimeError and a\nsocket.error with an unusual error code would leak.

\n

With the None-parameter, a real non-simulated\nOSError(107, \'Transport endpoint is not connected\') happens.

\n
\n\n
\n
\ncheroot.test.test_conn.test_client(testing_server)
\n

Get and return a test client out of the given server.

\n
\n\n
\n
\ncheroot.test.test_conn.test_invalid_selected_connection(test_client, monkeypatch)
\n

Test the error handling segment of HTTP connection selection.

\n

See cheroot.connections.ConnectionManager.get_conn().

\n
\n\n
\n
\ncheroot.test.test_conn.test_kb_int_from_http_handler(test_client, testing_server, wsgi_server_thread)
\n

Test that a keyboard interrupt from HTTP handler causes shutdown.

\n
\n\n
\n
\ncheroot.test.test_conn.test_keepalive(test_client, http_server_protocol)
\n

Test Keep-Alive enabled connections.

\n
\n\n
\n
\ncheroot.test.test_conn.test_keepalive_conn_management(test_client)
\n

Test management of Keep-Alive connections.

\n
\n\n
\n
\ncheroot.test.test_conn.test_readall_or_close(test_client, max_request_body_size)
\n

Test a max_request_body_size of 0 (the default) and 1001.

\n
\n\n
\n
\ncheroot.test.test_conn.test_remains_alive_post_unhandled_exception(mocker, monkeypatch, test_client, testing_server, wsgi_server_thread)
\n

Ensure worker threads are resilient to unhandled exceptions.

\n
\n\n
\n
\ncheroot.test.test_conn.test_streaming_10(test_client, set_cl)
\n

Test serving of streaming responses with HTTP/1.0 protocol.

\n
\n\n
\n
\ncheroot.test.test_conn.test_streaming_11(test_client, set_cl)
\n

Test serving of streaming responses with HTTP/1.1 protocol.

\n
\n\n
\n
\ncheroot.test.test_conn.test_unhandled_exception_in_request_handler(mocker, monkeypatch, test_client, testing_server, wsgi_server_thread)
\n

Ensure worker threads are resilient to in-handler exceptions.

\n
\n\n
\n
\ncheroot.test.test_conn.testing_server(raw_testing_server, monkeypatch)
\n

Modify the “raw” base server to monitor the error_log messages.

\n

If you need to ignore a particular error message use the property\ntesting_server.error_log.ignored_msgs by appending to the list\nthe expected error messages.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_conn.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460a9a5170>, 'js_tag': .js_tag at 0x7f460a9a4b40>}, >) writing output... [ 67%] pkg/cheroot.test.test_core [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_core') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_core', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_dispatch', 'cheroot.test.test_dispatch module', 'N', 'next'), ('pkg/cheroot.test.test_conn', 'cheroot.test.test_conn module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_core', 'current_page_name': 'pkg/cheroot.test.test_core', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609647cc0>, 'hasdoc': .hasdoc at 0x7f4609647d70>, 'toctree': . at 0x7f4609647ed0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_conn.html', 'title': 'cheroot.test.test_conn module'}, 'next': {'link': 'cheroot.test.test_dispatch.html', 'title': 'cheroot.test.test_dispatch module'}, 'title': 'cheroot.test.test_core module', 'meta': {}, 'body': '
\n

cheroot.test.test_core module

\n

Tests for managing HTTP issues (malformed requests, etc).

\n
\n
\nclass cheroot.test.test_core.CloseController
\n

Bases: object

\n

Controller for testing the close callback.

\n
\n
\nclose()
\n

Close, writing hello.

\n
\n\n
\n\n
\n
\nclass cheroot.test.test_core.CloseResponse(close)
\n

Bases: object

\n

Dummy empty response to trigger the no body status.

\n
\n
\noutput()
\n

Return self to hook the close method.

\n
\n\n
\n\n
\n
\nclass cheroot.test.test_core.HelloController
\n

Bases: Controller

\n

Controller for serving WSGI apps.

\n
\n
\nhandlers = {\'/*\': <function WSGICallables.asterisk>, \'/body_required\': <function WSGICallables.body_required>, \'/hello\': <function WSGICallables.hello>, \'/no_body\': <function WSGICallables.hello>, \'/query_string\': <function WSGICallables.query_string>, \'/\\xa0Ðblah key 0 900 4 data\': <function WSGICallables.hello>, \'/ЮÑ\\x85Ñ\\x85Ñ\\x83Ñ\\x83Ñ\\x83\': <function WSGICallables.hello>, \'/пÑ\\x80ивÑ\\x96Ñ\\x82\': <function WSGICallables.hello>}
\n
\n\n
\n\n
\n
\nclass cheroot.test.test_core.WSGICallables
\n

Bases: object

\n

Controller for serving WSGI apps.

\n
\n
\nstatic asterisk(req, resp)
\n

Render request method value.

\n
\n\n
\n
\nstatic body_required(req, resp)
\n

Render Hello world or set 411.

\n
\n\n
\n
\nstatic hello(req, resp)
\n

Render Hello world.

\n
\n\n
\n
\nstatic query_string(req, resp)
\n

Render QUERY_STRING value.

\n
\n\n
\n\n
\n
\ncheroot.test.test_core._get_http_response(connection, method=\'GET\')
\n
\n\n
\n
\ncheroot.test.test_core._munge(string)
\n

Encode PATH_INFO correctly depending on Python version.

\n

WSGI 1.0 is a mess around Unicode. Create endpoints\nthat match the PATH_INFO that it produces.

\n
\n\n
\n
\ncheroot.test.test_core.test_client(testing_server)
\n

Get and return a test client out of the given server.

\n
\n\n
\n
\ncheroot.test.test_core.test_client_with_defaults(testing_server_with_defaults)
\n

Get and return a test client out of the given server.

\n
\n\n
\n
\ncheroot.test.test_core.test_content_length_required(test_client)
\n

Test POST query with body failing because of missing Content-Length.

\n
\n\n
\n
\ncheroot.test.test_core.test_garbage_in(test_client)
\n

Test that server sends an error for garbage received over TCP.

\n
\n\n
\n
\ncheroot.test.test_core.test_http_connect_request(test_client)
\n

Check that CONNECT query results in Method Not Allowed status.

\n
\n\n
\n
\ncheroot.test.test_core.test_large_request(test_client_with_defaults)
\n

Test GET query with maliciously large Content-Length.

\n
\n\n
\n
\ncheroot.test.test_core.test_malformed_header(test_client)
\n

Check that broken HTTP header results in Bad Request.

\n
\n\n
\n
\ncheroot.test.test_core.test_malformed_http_method(test_client)
\n

Test non-uppercase HTTP method.

\n
\n\n
\n
\ncheroot.test.test_core.test_malformed_request_line(test_client, request_line, status_code, expected_body)
\n

Test missing or invalid HTTP version in Request-Line.

\n
\n\n
\n
\ncheroot.test.test_core.test_no_content_length(test_client)
\n

Test POST query with an empty body being successful.

\n
\n\n
\n
\ncheroot.test.test_core.test_normal_request(test_client)
\n

Check that normal GET query succeeds.

\n
\n\n
\n
\ncheroot.test.test_core.test_parse_acceptable_uri(test_client, uri)
\n

Check that server responds with OK to valid GET queries.

\n
\n\n
\n
\ncheroot.test.test_core.test_parse_no_leading_slash_invalid(test_client, uri)
\n

Check that server responds with Bad Request to invalid GET queries.

\n

Invalid request line test case: it should have leading slash (be absolute).

\n
\n\n
\n
\ncheroot.test.test_core.test_parse_uri_absolute_uri(test_client)
\n

Check that server responds with Bad Request to Absolute URI.

\n

Only proxy servers should allow this.

\n
\n\n
\n
\ncheroot.test.test_core.test_parse_uri_asterisk_uri(test_client)
\n

Check that server responds with OK to OPTIONS with “*” Absolute URI.

\n
\n\n
\n
\ncheroot.test.test_core.test_parse_uri_fragment_uri(test_client)
\n

Check that server responds with Bad Request to URI with fragment.

\n
\n\n
\n
\ncheroot.test.test_core.test_parse_uri_invalid_uri(test_client)
\n

Check that server responds with Bad Request to invalid GET queries.

\n

Invalid request line test case: it should only contain US-ASCII.

\n
\n\n
\n
\ncheroot.test.test_core.test_parse_uri_unsafe_uri(test_client)
\n

Test that malicious URI does not allow HTTP injection.

\n

This effectively checks that sending GET request with URL

\n

/%A0%D0blah%20key%200%20900%204%20data

\n

is not converted into

\n

GET /\nblah key 0 900 4 data\nHTTP/1.1

\n

which would be a security issue otherwise.

\n
\n\n
\n
\ncheroot.test.test_core.test_query_string_request(test_client)
\n

Check that GET parameter is parsed well.

\n
\n\n
\n
\ncheroot.test.test_core.test_request_line_split_issue_1220(test_client)
\n

Check that HTTP request line of exactly 256 chars length is OK.

\n
\n\n
\n
\ncheroot.test.test_core.test_send_header_before_closing(testing_server_close)
\n

Test we are actually sending the headers before calling ‘close’.

\n
\n\n
\n
\ncheroot.test.test_core.testing_server(wsgi_server_client)
\n

Attach a WSGI app to the given server and preconfigure it.

\n
\n\n
\n
\ncheroot.test.test_core.testing_server_close(wsgi_server_client)
\n

Attach a WSGI app to the given server and preconfigure it.

\n
\n\n
\n
\ncheroot.test.test_core.testing_server_with_defaults(wsgi_server_client)
\n

Attach a WSGI app to the given server and preconfigure it.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_core.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f46093c0040>, 'js_tag': .js_tag at 0x7f46093c0250>}, >) writing output... [ 69%] pkg/cheroot.test.test_dispatch [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_dispatch') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_dispatch', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_errors', 'cheroot.test.test_errors module', 'N', 'next'), ('pkg/cheroot.test.test_core', 'cheroot.test.test_core module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_dispatch', 'current_page_name': 'pkg/cheroot.test.test_dispatch', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f46093c0930>, 'hasdoc': .hasdoc at 0x7f46093c0720>, 'toctree': . at 0x7f46093c09e0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_core.html', 'title': 'cheroot.test.test_core module'}, 'next': {'link': 'cheroot.test.test_errors.html', 'title': 'cheroot.test.test_errors module'}, 'title': 'cheroot.test.test_dispatch module', 'meta': {}, 'body': '
\n

cheroot.test.test_dispatch module

\n

Tests for the HTTP server.

\n
\n
\ncheroot.test.test_dispatch.test_dispatch_no_script_name()
\n

Dispatch despite lack of SCRIPT_NAME in environ.

\n
\n\n
\n
\ncheroot.test.test_dispatch.wsgi_invoke(app, environ)
\n

Serve 1 request from a WSGI application.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_dispatch.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f46093c0a90>, 'js_tag': .js_tag at 0x7f46093c0ca0>}, >) writing output... [ 72%] pkg/cheroot.test.test_errors [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_errors') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_errors', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_makefile', 'cheroot.test.test_makefile module', 'N', 'next'), ('pkg/cheroot.test.test_dispatch', 'cheroot.test.test_dispatch module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_errors', 'current_page_name': 'pkg/cheroot.test.test_errors', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f46093c14e0>, 'hasdoc': .hasdoc at 0x7f46093c1220>, 'toctree': . at 0x7f46093c1590>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_dispatch.html', 'title': 'cheroot.test.test_dispatch module'}, 'next': {'link': 'cheroot.test.test_makefile.html', 'title': 'cheroot.test.test_makefile module'}, 'title': 'cheroot.test.test_errors module', 'meta': {}, 'body': '
\n

cheroot.test.test_errors module

\n

Test suite for cheroot.errors.

\n
\n
\ncheroot.test.test_errors.test_plat_specific_errors(err_names, err_nums)
\n

Test that plat_specific_errors gets correct error numbers list.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_errors.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f46093c1640>, 'js_tag': .js_tag at 0x7f46093c1850>}, >) writing output... [ 75%] pkg/cheroot.test.test_makefile [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_makefile') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_makefile', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_server', 'cheroot.test.test_server module', 'N', 'next'), ('pkg/cheroot.test.test_errors', 'cheroot.test.test_errors module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_makefile', 'current_page_name': 'pkg/cheroot.test.test_makefile', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f46093c1170>, 'hasdoc': .hasdoc at 0x7f46093c2350>, 'toctree': . at 0x7f46093c24b0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_errors.html', 'title': 'cheroot.test.test_errors module'}, 'next': {'link': 'cheroot.test.test_server.html', 'title': 'cheroot.test.test_server module'}, 'title': 'cheroot.test.test_makefile module', 'meta': {}, 'body': '
\n

cheroot.test.test_makefile module

\n

Tests for cheroot.makefile.

\n
\n
\nclass cheroot.test.test_makefile.MockSocket
\n

Bases: object

\n

A mock socket.

\n
\n
\n_decref_socketios()
\n

Emulate socket I/O reference decrement.

\n
\n\n
\n
\nrecv(size)
\n

Simulate recv for Python 2.

\n
\n\n
\n
\nrecv_into(buf)
\n

Simulate recv_into for Python 3.

\n
\n\n
\n
\nsend(val)
\n

Simulate a send.

\n
\n\n
\n\n
\n
\ncheroot.test.test_makefile.test_bytes_read()
\n

Reader should capture bytes read.

\n
\n\n
\n
\ncheroot.test.test_makefile.test_bytes_written()
\n

Writer should capture bytes written.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_makefile.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f46093c2560>, 'js_tag': .js_tag at 0x7f46093c2770>}, >) writing output... [ 78%] pkg/cheroot.test.test_server [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_server') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_server', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_ssl', 'cheroot.test.test_ssl module', 'N', 'next'), ('pkg/cheroot.test.test_makefile', 'cheroot.test.test_makefile module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_server', 'current_page_name': 'pkg/cheroot.test.test_server', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f46093c21f0>, 'hasdoc': .hasdoc at 0x7f46093c3a00>, 'toctree': . at 0x7f46093c3b60>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_makefile.html', 'title': 'cheroot.test.test_makefile module'}, 'next': {'link': 'cheroot.test.test_ssl.html', 'title': 'cheroot.test.test_ssl module'}, 'title': 'cheroot.test.test_server module', 'meta': {}, 'body': '
\n

cheroot.test.test_server module

\n

Tests for the HTTP server.

\n
\n
\nclass cheroot.test.test_server._TestGateway(req)
\n

Bases: Gateway

\n
\n
\nrespond()
\n

Process the current request. Must be overridden in a subclass.

\n
\n\n
\n
\nsend_payload(payload)
\n
\n\n
\n\n
\n
\ncheroot.test.test_server._garbage_bin()
\n

Disable garbage collection when this fixture is in use.

\n
\n\n
\n
\ncheroot.test.test_server.many_open_sockets(request, resource_limit)
\n

Allocate a lot of file descriptors by opening dummy sockets.

\n
\n\n
\n
\ncheroot.test.test_server.peercreds_enabled_server(http_server, unix_sock_file)
\n

Construct a test server with peercreds_enabled.

\n
\n\n
\n
\ncheroot.test.test_server.resource_limit(request)
\n

Set the resource limit two times bigger then requested.

\n
\n\n
\n
\ncheroot.test.test_server.test_bind_addr_inet(http_server, ip_addr)
\n

Check that bound IP address is stored in server.

\n
\n\n
\n
\ncheroot.test.test_server.test_bind_addr_unix(http_server, unix_sock_file)
\n

Check that bound UNIX socket address is stored in server.

\n
\n\n
\n
\ncheroot.test.test_server.test_bind_addr_unix_abstract(http_server, unix_abstract_sock)
\n

Check that bound UNIX abstract socket address is stored in server.

\n
\n\n
\n
\ncheroot.test.test_server.test_high_number_of_file_descriptors(native_server_client, resource_limit)
\n

Test the server does not crash with a high file-descriptor value.

\n

This test shouldn’t cause a server crash when trying to access\nfile-descriptor higher than 1024.

\n

The earlier implementation used to rely on select() syscall that\ndoesn’t support file descriptors with numbers higher than 1024.

\n
\n\n
\n
\ncheroot.test.test_server.test_overload_results_in_suitable_http_error(request)
\n

A server that can’t keep up with requests returns a 503 HTTP error.

\n
\n\n
\n
\ncheroot.test.test_server.test_peercreds_unix_sock(http_request_timeout, peercreds_enabled_server)
\n

Check that PEERCRED lookup works when enabled.

\n
\n\n
\n
\ncheroot.test.test_server.test_peercreds_unix_sock_with_lookup(http_request_timeout, peercreds_enabled_server)
\n

Check that PEERCRED resolution works when enabled.

\n
\n\n
\n
\ncheroot.test.test_server.test_prepare_makes_server_ready()
\n

Check that prepare() makes the server ready, and stop() clears it.

\n
\n\n
\n
\ncheroot.test.test_server.test_reuse_port(http_server, ip_addr, mocker)
\n

Check that port initialized externally can be reused.

\n
\n\n
\n
\ncheroot.test.test_server.test_server_interrupt(exc_cls)
\n

Check that assigning interrupt stops the server.

\n
\n\n
\n
\ncheroot.test.test_server.test_serving_is_false_and_stop_returns_after_ctrlc()
\n

Check that stop() interrupts running of serve().

\n
\n\n
\n
\ncheroot.test.test_server.test_stop_interrupts_serve()
\n

Check that stop() interrupts running of serve().

\n
\n\n
\n
\ncheroot.test.test_server.test_threadpool_invalid_threadrange(minthreads, maxthreads, error)
\n

Test that a ThreadPool rejects invalid min/max values.

\n

The ThreadPool should raise an error with the proper message when\ninitialized with an invalid min+max number of threads.

\n
\n\n
\n
\ncheroot.test.test_server.test_threadpool_multistart_validation(monkeypatch)
\n

Test for ThreadPool multi-start behavior.

\n

Tests that when calling start() on a ThreadPool multiple times raises a\nRuntimeError

\n
\n\n
\n
\ncheroot.test.test_server.test_threadpool_threadrange_set(minthreads, maxthreads, inited_maxthreads)
\n

Test setting the number of threads in a ThreadPool.

\n

The ThreadPool should properly set the min+max number of the threads to use\nin the pool if those limits are valid.

\n
\n\n
\n
\ncheroot.test.test_server.unix_abstract_sock()
\n

Return an abstract UNIX socket address.

\n
\n\n
\n
\ncheroot.test.test_server.unix_file_sock()
\n

Yield a UNIX file socket.

\n
\n\n
\n
\ncheroot.test.test_server.unix_sock_file(request)
\n

Check that bound UNIX socket address is stored in server.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_server.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f46093c3c10>, 'js_tag': .js_tag at 0x7f46093c3e20>}, >) writing output... [ 81%] pkg/cheroot.test.test_ssl [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_ssl') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_ssl', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.test_wsgi', 'cheroot.test.test_wsgi module', 'N', 'next'), ('pkg/cheroot.test.test_server', 'cheroot.test.test_server module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_ssl', 'current_page_name': 'pkg/cheroot.test.test_ssl', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460935c510>, 'hasdoc': .hasdoc at 0x7f460935cf60>, 'toctree': . at 0x7f460935d0c0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_server.html', 'title': 'cheroot.test.test_server module'}, 'next': {'link': 'cheroot.test.test_wsgi.html', 'title': 'cheroot.test.test_wsgi module'}, 'title': 'cheroot.test.test_ssl module', 'meta': {}, 'body': '
\n

cheroot.test.test_ssl module

\n

Tests for TLS support.

\n
\n
\nclass cheroot.test.test_ssl.HelloWorldGateway(req)
\n

Bases: Gateway_10

\n

Gateway responding with Hello World to root URI.

\n
\n
\nrespond()
\n

Respond with dummy content via HTTP.

\n
\n\n
\n\n
\n
\ncheroot.test.test_ssl._thread_except_hook(exceptions, args)
\n

Append uncaught exception args in threads to exceptions.

\n
\n\n
\n
\ncheroot.test.test_ssl.ca()
\n

Provide a certificate authority via fixture.

\n
\n\n
\n
\ncheroot.test.test_ssl.make_tls_http_server(bind_addr, ssl_adapter, request)
\n

Create and start an HTTP server bound to bind_addr.

\n
\n\n
\n
\ncheroot.test.test_ssl.private_key_password()
\n

Provide hardcoded password for private key.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_builtin_adapter_with_false_key_password(tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, adapter_type)
\n

Check that builtin ssl-adapter initialization fails when wrong private key password given.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_http_over_https_error(http_request_timeout, tls_http_server, adapter_type, ca, ip_addr, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path)
\n

Ensure that connecting over HTTP to HTTPS port is handled.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_https_over_http_error(http_server, ip_addr)
\n

Ensure that connecting over HTTPS to HTTP port is handled.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_openssl_adapter_with_false_key_password(tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, adapter_type, false_password, expected_warn)
\n

Check that server init fails when wrong private key password given.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_ssl_adapters(http_request_timeout, tls_http_server, adapter_type, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path)
\n

Test ability to connect to server via HTTPS using adapters.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_ssl_adapters_with_private_key_password(http_request_timeout, private_key_password, tls_http_server, tls_ca_certificate_pem_path, tls_certificate_chain_pem_path, tls_certificate_passwd_private_key_pem_path, tls_certificate_private_key_pem_path, adapter_type, encrypted_key, password_as_bytes)
\n

Check server decrypts private TLS keys with password as bytes or str.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_ssl_env(thread_exceptions, recwarn, mocker, http_request_timeout, tls_http_server, adapter_type, ca, tls_verify_mode, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path, use_client_cert)
\n

Test the SSL environment generated by the SSL adapters.

\n
\n\n
\n
\ncheroot.test.test_ssl.test_tls_client_auth(http_request_timeout, mocker, tls_http_server, adapter_type, ca, tls_certificate, tls_certificate_chain_pem_path, tls_certificate_private_key_pem_path, tls_ca_certificate_pem_path, is_trusted_cert, tls_client_identity, tls_verify_mode)
\n

Verify that client TLS certificate auth works correctly.

\n
\n\n
\n
\ncheroot.test.test_ssl.thread_exceptions()
\n

Provide a list of uncaught exceptions from threads via a fixture.

\n

Only catches exceptions on Python 3.8+.\nThe list contains: (type, str(value), str(traceback))

\n
\n\n
\n
\ncheroot.test.test_ssl.tls_ca_certificate_pem_path(ca)
\n

Provide a certificate authority certificate file via fixture.

\n
\n\n
\n
\ncheroot.test.test_ssl.tls_certificate(ca)
\n

Provide a leaf certificate via fixture.

\n
\n\n
\n
\ncheroot.test.test_ssl.tls_certificate_chain_pem_path(tls_certificate)
\n

Provide a certificate chain PEM file path via fixture.

\n
\n\n
\n
\ncheroot.test.test_ssl.tls_certificate_passwd_private_key_pem_path(tls_certificate, private_key_password, tmp_path)
\n

Return a certificate private key PEM file path.

\n
\n\n
\n
\ncheroot.test.test_ssl.tls_certificate_private_key_pem_path(tls_certificate)
\n

Provide a certificate private key PEM file path via fixture.

\n
\n\n
\n
\ncheroot.test.test_ssl.tls_http_server(request)
\n

Provision a server creator as a fixture.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_ssl.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460935d170>, 'js_tag': .js_tag at 0x7f460935d380>}, >) writing output... [ 83%] pkg/cheroot.test.test_wsgi [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.test_wsgi') [app] emitting event: 'html-page-context'('pkg/cheroot.test.test_wsgi', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.test.webtest', 'cheroot.test.webtest module', 'N', 'next'), ('pkg/cheroot.test.test_ssl', 'cheroot.test.test_ssl module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.test_wsgi', 'current_page_name': 'pkg/cheroot.test.test_wsgi', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460935d900>, 'hasdoc': .hasdoc at 0x7f460935db10>, 'toctree': . at 0x7f460935dd20>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_ssl.html', 'title': 'cheroot.test.test_ssl module'}, 'next': {'link': 'cheroot.test.webtest.html', 'title': 'cheroot.test.webtest module'}, 'title': 'cheroot.test.test_wsgi module', 'meta': {}, 'body': '
\n

cheroot.test.test_wsgi module

\n

Test wsgi.

\n
\n
\ncheroot.test.test_wsgi.simple_wsgi_server()
\n

Fucking simple wsgi server fixture (duh).

\n
\n\n
\n
\ncheroot.test.test_wsgi.test_connection_keepalive(simple_wsgi_server)
\n

Test the connection keep-alive works (duh).

\n
\n\n
\n
\ncheroot.test.test_wsgi.test_gateway_start_response_called_twice(monkeypatch)
\n

Verify that repeat calls of Gateway.start_response() fail.

\n
\n\n
\n
\ncheroot.test.test_wsgi.test_gateway_write_needs_start_response_called_before(monkeypatch)
\n

Check that calling Gateway.write() needs started response.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.test_wsgi.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460935ddd0>, 'js_tag': .js_tag at 0x7f460935dfe0>}, >) writing output... [ 86%] pkg/cheroot.test.webtest [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.test.webtest') [app] emitting event: 'html-page-context'('pkg/cheroot.test.webtest', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.workers', 'cheroot.workers package', 'N', 'next'), ('pkg/cheroot.test.test_wsgi', 'cheroot.test.test_wsgi module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.test.html', 'title': 'cheroot.test package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.test.webtest', 'current_page_name': 'pkg/cheroot.test.webtest', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460935fb60>, 'hasdoc': .hasdoc at 0x7f460935f270>, 'toctree': . at 0x7f460935e4b0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.test_wsgi.html', 'title': 'cheroot.test.test_wsgi module'}, 'next': {'link': 'cheroot.workers.html', 'title': 'cheroot.workers package'}, 'title': 'cheroot.test.webtest module', 'meta': {}, 'body': '
\n

cheroot.test.webtest module

\n

Extensions to unittest for web frameworks.

\n

Use the WebCase.getPage() method to request a page\nfrom your HTTP server.

\n
\n

Framework Integration

\n

If you have control over your server process, you can handle errors\nin the server-side of the HTTP conversation a bit better. You must run\nboth the client (your WebCase tests) and the server in the\nsame process (but in separate threads, obviously).\nWhen an error occurs in the framework, call server_error. It will print\nthe traceback to stdout, and keep any assertions you have from running\n(the assumption is that, if the server errors, the page output will not\nbe of further significance to your tests).

\n
\n
\n
\nclass cheroot.test.webtest.NonDataProperty(fget)
\n

Bases: object

\n

Non-data property decorator.

\n
\n\n
\n
\nexception cheroot.test.webtest.ServerError
\n

Bases: Exception

\n

Exception for signalling server error.

\n
\n
\non = False
\n
\n\n
\n\n
\n
\nclass cheroot.test.webtest.WebCase(methodName=\'runTest\')
\n

Bases: TestCase

\n

Helper web test suite base.

\n
\n
\nHOST = \'127.0.0.1\'
\n
\n\n
\n
\nHTTP_CONN
\n

alias of HTTPConnection

\n
\n\n
\n
\nPORT = 8000
\n
\n\n
\n
\nPROTOCOL = \'HTTP/1.1\'
\n
\n\n
\n
\nproperty _Conn
\n

Return HTTPConnection or HTTPSConnection based on self.scheme.

\n
    \n
  • from python:http.client.

  • \n
\n
\n\n
\n
\n_classSetupFailed = False
\n
\n\n
\n
\n_class_cleanups = []
\n
\n\n
\n
\n_handlewebError(msg)
\n
\n\n
\n
\nassertBody(value, msg=None)
\n

Fail if value != self.body.

\n
\n\n
\n
\nassertHeader(key, value=None, msg=None)
\n

Fail if (key, [value]) not in self.headers.

\n
\n\n
\n
\nassertHeaderIn(key, values, msg=None)
\n

Fail if header indicated by key doesn’t have one of the values.

\n
\n\n
\n
\nassertHeaderItemValue(key, value, msg=None)
\n

Fail if the header does not contain the specified value.

\n
\n\n
\n
\nassertInBody(value, msg=None)
\n

Fail if value not in self.body.

\n
\n\n
\n
\nassertMatchesBody(pattern, msg=None, flags=0)
\n

Fail if value (a regex pattern) is not in self.body.

\n
\n\n
\n
\nassertNoHeader(key, msg=None)
\n

Fail if key in self.headers.

\n
\n\n
\n
\nassertNoHeaderItemValue(key, value, msg=None)
\n

Fail if the header contains the specified value.

\n
\n\n
\n
\nassertNotInBody(value, msg=None)
\n

Fail if value in self.body.

\n
\n\n
\n
\nassertStatus(status, msg=None)
\n

Fail if self.status != status.

\n

status may be integer code, exact string status, or\niterable of allowed possibilities.

\n
\n\n
\n
\nbody = None
\n
\n\n
\n
\nconsole_height = 30
\n
\n\n
\n
\nencoding = \'utf-8\'
\n
\n\n
\n
\ngetPage(url, headers=None, method=\'GET\', body=None, protocol=None, raise_subcls=())
\n

Open the url with debugging support.

\n

Return status, headers, body.

\n

url should be the identifier passed to the server, typically a\nserver-absolute path and query string (sent between method and\nprotocol), and should only be an absolute URI if proxy support is\nenabled in the server.

\n

If the application under test generates absolute URIs, be sure\nto wrap them first with strip_netloc():

\n
>>> class MyAppWebCase(WebCase):\n...     def getPage(url, *args, **kwargs):\n...         super(MyAppWebCase, self).getPage(\n...             cheroot.test.webtest.strip_netloc(url),\n...             *args, **kwargs\n...         )\n
\n
\n

raise_subcls is passed through to openURL().

\n
\n\n
\n
\nget_conn(auto_open=False)
\n

Return a connection to our HTTP server.

\n
\n\n
\n
\nheaders = None
\n
\n\n
\n
\ninteractive
\n

Non-data property decorator.

\n
\n\n
\n
\ninterface()
\n

Return an IP address for a client connection.

\n

If the server is listening on ‘0.0.0.0’ (INADDR_ANY)\nor ‘::’ (IN6ADDR_ANY), this will return the proper localhost.

\n
\n\n
\n
\nproperty persistent
\n

Presence of the persistent HTTP connection.

\n
\n\n
\n
\nscheme = \'http\'
\n
\n\n
\n
\nset_persistent(on=True, auto_open=False)
\n

Make our HTTP_CONN persistent (or not).

\n

If the ‘on’ argument is True (the default), then self.HTTP_CONN\nwill be set to an instance of HTTP(S)?Connection\nto persist across requests.\nAs this class only allows for a single open connection, if\nself already has an open connection, it will be closed.

\n
\n\n
\n
\nssl_context = None
\n
\n\n
\n
\nstatus = None
\n
\n\n
\n
\nproperty status_code
\n

Integer HTTP status code.

\n
\n\n
\n
\nstatus_matches(expected)
\n

Check whether actual status matches expected.

\n
\n\n
\n
\ntime = None
\n
\n\n
\n
\nurl = None
\n
\n\n
\n\n
\n
\ncheroot.test.webtest._open_url_once(url, headers=None, method=\'GET\', body=None, host=\'127.0.0.1\', port=8000, http_conn=<class \'http.client.HTTPConnection\'>, protocol=\'HTTP/1.1\', ssl_context=None)
\n

Open the given HTTP resource and return status, headers, and body.

\n
\n\n
\n
\ncheroot.test.webtest.cleanHeaders(headers, method, body, host, port)
\n

Return request headers, with required headers added (if missing).

\n
\n\n
\n
\ncheroot.test.webtest.getchar()
\n

Get a key press.

\n
\n\n
\n
\ncheroot.test.webtest.interface(host)
\n

Return an IP address for a client connection given the server host.

\n

If the server is listening on ‘0.0.0.0’ (INADDR_ANY)\nor ‘::’ (IN6ADDR_ANY), this will return the proper localhost.

\n
\n\n
\n
\ncheroot.test.webtest.openURL(*args, raise_subcls=(), **kwargs)
\n

Open a URL, retrying when it fails.

\n

Specify raise_subcls (class or tuple of classes) to exclude\nthose socket.error subclasses from being suppressed and retried.

\n
\n\n
\n
\ncheroot.test.webtest.server_error(exc=None)
\n

Server debug hook.

\n

Return True if exception handled, False if ignored.\nYou probably want to wrap this, so you can still handle an error using\nyour framework when it’s ignored.

\n
\n\n
\n
\ncheroot.test.webtest.shb(response)
\n

Return status, headers, body the way we like from a response.

\n
\n\n
\n
\ncheroot.test.webtest.strip_netloc(url)
\n

Return absolute-URI path from URL.

\n

Strip the scheme and host from the URL, returning the\nserver-absolute portion.

\n

Useful for wrapping an absolute-URI for which only the\npath is expected (such as in calls to WebCase.getPage()).

\n
>>> strip_netloc('https://google.com/foo/bar?bing#baz')\n'/foo/bar?bing'\n
\n
\n
>>> strip_netloc('//google.com/foo/bar?bing#baz')\n'/foo/bar?bing'\n
\n
\n
>>> strip_netloc('/foo/bar?bing#baz')\n'/foo/bar?bing'\n
\n
\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.test.webtest.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460935dbc0>, 'js_tag': .js_tag at 0x7f460935fe20>}, >) writing output... [ 89%] pkg/cheroot.testing [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.testing') [app] emitting event: 'html-page-context'('pkg/cheroot.testing', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.wsgi', 'cheroot.wsgi module', 'N', 'next'), ('pkg/cheroot.server', 'cheroot.server module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.testing', 'current_page_name': 'pkg/cheroot.testing', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f46091183b0>, 'hasdoc': .hasdoc at 0x7f4609118880>, 'toctree': . at 0x7f4609118930>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.server.html', 'title': 'cheroot.server module'}, 'next': {'link': 'cheroot.wsgi.html', 'title': 'cheroot.wsgi module'}, 'title': 'cheroot.testing module', 'meta': {}, 'body': '
\n

cheroot.testing module

\n

Pytest fixtures and other helpers for doing testing by end-users.

\n
\n
\nclass cheroot.testing._TestClient(server)
\n

Bases: object

\n
\n
\nget_connection()
\n
\n\n
\n
\nrequest(uri, method=\'GET\', headers=None, http_conn=None, protocol=\'HTTP/1.1\')
\n
\n\n
\n\n
\n
\ncheroot.testing._get_conn_data(bind_addr)
\n
\n\n
\n
\ncheroot.testing._probe_ipv6_sock(interface)
\n
\n\n
\n
\ncheroot.testing.cheroot_server(server_factory)
\n

Set up and tear down a Cheroot server instance.

\n
\n\n
\n
\ncheroot.testing.get_server_client(server)
\n

Create and return a test client for the given server.

\n
\n\n
\n
\ncheroot.testing.native_server(thread_and_native_server)
\n

Set up and tear down a Cheroot HTTP server instance.

\n
\n\n
\n
\ncheroot.testing.thread_and_native_server()
\n

Set up and tear down a Cheroot HTTP server instance.

\n

This emits a tuple of a thread and a server instance.

\n
\n\n
\n
\ncheroot.testing.thread_and_wsgi_server()
\n

Set up and tear down a Cheroot WSGI server instance.

\n

This emits a tuple of a thread and a server instance.

\n
\n\n
\n
\ncheroot.testing.wsgi_server(thread_and_wsgi_server)
\n

Set up and tear down a Cheroot WSGI server instance.

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.testing.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f46091189e0>, 'js_tag': .js_tag at 0x7f4609118bf0>}, >) writing output... [ 92%] pkg/cheroot.workers [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.workers') [app] emitting event: 'html-page-context'('pkg/cheroot.workers', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.workers.threadpool', 'cheroot.workers.threadpool module', 'N', 'next'), ('pkg/cheroot.test.webtest', 'cheroot.test.webtest module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.workers', 'current_page_name': 'pkg/cheroot.workers', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609119590>, 'hasdoc': .hasdoc at 0x7f4609119640>, 'toctree': . at 0x7f46091196f0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.test.webtest.html', 'title': 'cheroot.test.webtest module'}, 'next': {'link': 'cheroot.workers.threadpool.html', 'title': 'cheroot.workers.threadpool module'}, 'title': 'cheroot.workers package', 'meta': {}, 'body': '
\n

cheroot.workers package

\n
\n

Submodules

\n\n
\n
\n

Module contents

\n

HTTP workers pool.

\n
\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.workers.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f46091197a0>, 'js_tag': .js_tag at 0x7f46091199b0>}, >) writing output... [ 94%] pkg/cheroot.workers.threadpool [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'warn-missing-reference'(, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.workers.threadpool') [app] emitting event: 'html-page-context'('pkg/cheroot.workers.threadpool', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.__main__', 'cheroot.__main__ module', 'N', 'next'), ('pkg/cheroot.workers', 'cheroot.workers package', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}, {'link': 'cheroot.workers.html', 'title': 'cheroot.workers package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.workers.threadpool', 'current_page_name': 'pkg/cheroot.workers.threadpool', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4609119fe0>, 'hasdoc': .hasdoc at 0x7f460911a140>, 'toctree': . at 0x7f460911a2a0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.workers.html', 'title': 'cheroot.workers package'}, 'next': {'link': 'cheroot.__main__.html', 'title': 'cheroot.__main__ module'}, 'title': 'cheroot.workers.threadpool module', 'meta': {}, 'body': '
\n

cheroot.workers.threadpool module

\n

A thread-based worker pool.

\n
\n
\nclass cheroot.workers.threadpool.ThreadPool(server, min=10, max=-1, accepted_queue_size=-1, accepted_queue_timeout=10)
\n

Bases: object

\n

A Request Queue for an HTTPServer which pools threads.

\n

ThreadPool objects must provide min, get(), put(obj), start()\nand stop(timeout) attributes.

\n
\n
\n_clear_dead_threads()
\n
\n\n
\n
\n_clear_threads()
\n

Clear self._threads and yield all joinable threads.

\n
\n\n
\n
\nstatic _force_close(conn)
\n
\n\n
\n
\n_spawn_worker()
\n
\n\n
\n
\ngrow(amount)
\n

Spawn new worker threads (not above self.max).

\n
\n\n
\n
\nproperty idle
\n

Number of worker threads which are idle. Read-only.

\n
\n\n
\n
\nput(obj)
\n

Put request into queue.

\n
\n
Args:
\n
obj (HTTPConnection): HTTP connection

waiting to be processed

\n
\n
\n
\n
\n
\n\n
\n
\nproperty qsize
\n

Return the queue size.

\n
\n\n
\n
\nshrink(amount)
\n

Kill off worker threads (not below self.min).

\n
\n\n
\n
\nstart()
\n

Start the pool of threads.

\n
\n
Raises:
\n

RuntimeError – if the pool is already started

\n
\n
\n
\n\n
\n
\nstop(timeout=5)
\n

Terminate all worker threads.

\n
\n
Args:

timeout (int): time to wait for threads to stop gracefully

\n
\n
\n
\n\n
\n\n
\n
\nclass cheroot.workers.threadpool.WorkerThread(server)
\n

Bases: Thread

\n

Thread which continuously polls a Queue for Connection objects.

\n

Due to the timing issues of polling a Queue, a WorkerThread does not\ncheck its own ‘ready’ flag after it has started. To stop the thread,\nit is necessary to stick a _SHUTDOWNREQUEST object onto the Queue\n(one for each running WorkerThread).

\n
\n
\n_process_connections_until_interrupted()
\n

Process incoming HTTP connections in an infinite loop.

\n

Retrieves incoming connections from thread pool, processing\nthem one by one.

\n
\n
Raises:
\n

SystemExit – on the internal requests to stop the\nserver instance

\n
\n
\n
\n\n
\n
\nconn = None
\n

The current connection pulled off the Queue, or None.

\n
\n\n
\n
\nready = False
\n

A simple flag for the calling server to know when this thread\nhas begun polling the Queue.

\n
\n\n
\n
\nrun()
\n

Set up incoming HTTP connection processing loop.

\n

This is the thread’s entry-point. It performs lop-layer\nexception handling and interrupt processing.\nKeyboardInterrupt and SystemExit bubbling up\nfrom the inner-layer code constitute a global server interrupt\nrequest. When they happen, the worker thread exits.

\n
\n
Raises:
\n

BaseException – when an unexpected non-interrupt\nexception leaks from the inner layers

\n
\n
\n

# noqa: DAR401 KeyboardInterrupt SystemExit

\n
\n\n
\n
\nserver = None
\n

The HTTP Server which spawned this thread, and which owns the\nQueue and is placing active connections into it.

\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.workers.threadpool.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460911a350>, 'js_tag': .js_tag at 0x7f460911a560>}, >) writing output... [ 97%] pkg/cheroot.wsgi [app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'pkg/cheroot.wsgi') [app] emitting event: 'html-page-context'('pkg/cheroot.wsgi', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot.testing', 'cheroot.testing module', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'modules.html', 'title': 'cheroot'}, {'link': 'cheroot.html', 'title': 'cheroot package'}], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/cheroot.wsgi', 'current_page_name': 'pkg/cheroot.wsgi', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460911a980>, 'hasdoc': .hasdoc at 0x7f460911ac40>, 'toctree': . at 0x7f460911ada0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': 'cheroot.testing.html', 'title': 'cheroot.testing module'}, 'next': None, 'title': 'cheroot.wsgi module', 'meta': {}, 'body': '
\n

cheroot.wsgi module

\n

This class holds Cheroot WSGI server implementation.

\n

Simplest example on how to use this server:

\n
from cheroot import wsgi\n\ndef my_crazy_app(environ, start_response):\n    status = '200 OK'\n    response_headers = [('Content-type','text/plain')]\n    start_response(status, response_headers)\n    return [b'Hello world!']\n\naddr = '0.0.0.0', 8070\nserver = wsgi.Server(addr, my_crazy_app)\nserver.start()\n
\n
\n

The Cheroot WSGI server can serve as many WSGI applications\nas you want in one instance by using a PathInfoDispatcher:

\n
path_map = {\n    '/': my_crazy_app,\n    '/blog': my_blog_app,\n}\nd = wsgi.PathInfoDispatcher(path_map)\nserver = wsgi.Server(addr, d)\n
\n
\n
\n
\nclass cheroot.wsgi.Gateway(req)
\n

Bases: Gateway

\n

A base class to interface HTTPServer with WSGI.

\n
\n
\nstatic _encode_status(status)
\n

Cast status to bytes representation of current Python version.

\n

According to PEP 3333, when using Python 3, the response status\nand headers must be bytes masquerading as Unicode; that is, they\nmust be of type “str” but are restricted to code points in the\n“Latin-1” set.

\n
\n\n
\n
\nclassmethod gateway_map()
\n

Create a mapping of gateways and their versions.

\n
\n
Returns:
\n
dict[tuple[int,int],class]: map of gateway version and

corresponding class

\n
\n
\n
\n
\n
\n\n
\n
\nget_environ()
\n

Return a new environ dict targeting the given wsgi.version.

\n
\n\n
\n
\nrespond()
\n

Process the current request.

\n

From PEP 333:

\n
\n

The start_response callable must not actually transmit\nthe response headers. Instead, it must store them for the\nserver or gateway to transmit only after the first\niteration of the application return value that yields\na NON-EMPTY string, or upon the application’s first\ninvocation of the write() callable.

\n
\n
\n\n
\n
\nstart_response(status, headers, exc_info=None)
\n

WSGI callable to begin the HTTP response.

\n
\n\n
\n
\nwrite(chunk)
\n

WSGI callable to write unbuffered data to the client.

\n

This method is also used internally by start_response (to write\ndata from the iterable returned by the WSGI application).

\n
\n\n
\n\n
\n
\nclass cheroot.wsgi.Gateway_10(req)
\n

Bases: Gateway

\n

A Gateway class to interface HTTPServer with WSGI 1.0.x.

\n
\n
\nget_environ()
\n

Return a new environ dict targeting the given wsgi.version.

\n
\n\n
\n
\nversion = (1, 0)
\n
\n\n
\n\n
\n
\nclass cheroot.wsgi.Gateway_u0(req)
\n

Bases: Gateway_10

\n

A Gateway class to interface HTTPServer with WSGI u.0.

\n

WSGI u.0 is an experimental protocol, which uses Unicode for keys\nand values in both Python 2 and Python 3.

\n
\n
\nget_environ()
\n

Return a new environ dict targeting the given wsgi.version.

\n
\n\n
\n
\nversion = (\'u\', 0)
\n
\n\n
\n\n
\n
\nclass cheroot.wsgi.PathInfoDispatcher(apps)
\n

Bases: object

\n

A WSGI dispatcher for dispatch based on the PATH_INFO.

\n
\n\n
\n
\nclass cheroot.wsgi.Server(bind_addr, wsgi_app, numthreads=10, server_name=None, max=-1, request_queue_size=5, timeout=10, shutdown_timeout=5, accepted_queue_size=-1, accepted_queue_timeout=10, peercreds_enabled=False, peercreds_resolve_enabled=False, reuse_port=False)
\n

Bases: HTTPServer

\n

A subclass of HTTPServer which calls a WSGI application.

\n
\n
\nproperty numthreads
\n

Set minimum number of threads.

\n
\n\n
\n
\nwsgi_version = (1, 0)
\n

The version of WSGI to produce.

\n
\n\n
\n\n
\n
\ncheroot.wsgi.WSGIGateway
\n

alias of Gateway

\n
\n\n
\n
\ncheroot.wsgi.WSGIGateway_10
\n

alias of Gateway_10

\n
\n\n
\n
\ncheroot.wsgi.WSGIGateway_u0
\n

alias of Gateway_u0

\n
\n\n
\n
\ncheroot.wsgi.WSGIPathInfoDispatcher
\n

alias of PathInfoDispatcher

\n
\n\n
\n
\ncheroot.wsgi.WSGIServer
\n

alias of Server

\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/cheroot.wsgi.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460911ae50>, 'js_tag': .js_tag at 0x7f460911b060>}, >) writing output... [100%] pkg/modules [app] emitting event: 'doctree-resolved'(>, 'pkg/modules') [app] emitting event: 'html-page-context'('pkg/modules', 'page.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('pkg/cheroot', 'cheroot package', 'N', 'next'), ('devguide', 'Development guide', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'pkg/modules', 'current_page_name': 'pkg/modules', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460911b530>, 'hasdoc': .hasdoc at 0x7f460911b5e0>, 'toctree': . at 0x7f460911b690>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'prev': {'link': '../devguide.html', 'title': 'Development guide'}, 'next': {'link': 'cheroot.html', 'title': 'cheroot package'}, 'title': 'cheroot', 'meta': {}, 'body': '
\n

cheroot

\n\n
\n', 'metatags': '\n', 'sourcename': 'pkg/modules.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'has_maths_elements': False, 'content_root': '../', 'css_tag': .css_tag at 0x7f460911b8a0>, 'js_tag': .js_tag at 0x7f460911bab0>}, >) /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docs/contributing/guidelines.rst:72: WARNING: 'any' reference target not found: python [ref.any] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:171: WARNING: py:mod reference target not found: python:ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:174: WARNING: py:exc reference target not found: ssl.SSLEOFError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:174: WARNING: py:exc reference target not found: ssl.SSLZeroReturnError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:194: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:273: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:341: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:341: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:388: WARNING: py:data reference target not found: signal.SIGINT [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:432: WARNING: py:data reference target not found: signal.SIGINT [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:432: WARNING: py:data reference target not found: signal.SIGTERM [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:460: WARNING: py:meth reference target not found: selectors.BaseSelector.get_map [ref.meth] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:513: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:513: WARNING: py:mod reference target not found: selectors [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:664: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:667: WARNING: py:mod reference target not found: unittest [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:667: WARNING: py:mod reference target not found: ddt [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:675: WARNING: py:func reference target not found: os.lchmod [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:677: WARNING: py:mod reference target not found: ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:680: WARNING: py:class reference target not found: OpenSSL.SSL.Connection [ref.class] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:710: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:853: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:865: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:171: WARNING: py:mod reference target not found: python:ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:174: WARNING: py:exc reference target not found: ssl.SSLEOFError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:174: WARNING: py:exc reference target not found: ssl.SSLZeroReturnError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:194: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:273: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:341: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:341: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:388: WARNING: py:data reference target not found: signal.SIGINT [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:432: WARNING: py:data reference target not found: signal.SIGINT [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:432: WARNING: py:data reference target not found: signal.SIGTERM [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:460: WARNING: py:meth reference target not found: selectors.BaseSelector.get_map [ref.meth] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:513: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:513: WARNING: py:mod reference target not found: selectors [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:664: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:667: WARNING: py:mod reference target not found: unittest [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:667: WARNING: py:mod reference target not found: ddt [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:675: WARNING: py:func reference target not found: os.lchmod [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:677: WARNING: py:mod reference target not found: ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:680: WARNING: py:class reference target not found: OpenSSL.SSL.Connection [ref.class] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:710: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:853: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/CHANGES.rst:865: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/_compat.py:docstring of cheroot._compat.extract_bytes:3: WARNING: py:func reference target not found: buffer [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/_compat.py:docstring of cheroot._compat.extract_bytes:9: WARNING: py:func reference target not found: buffer [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/connections.py:docstring of cheroot.connections._ThreadsafeSelector:8: WARNING: py:func reference target not found: iter [ref.func] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/connections.py:docstring of cheroot.connections._ThreadsafeSelector:16: WARNING: py:meth reference target not found: selectors.BaseSelector.select [ref.meth] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/errors.py:docstring of cheroot.errors.plat_specific_errors:3: WARNING: py:mod reference target not found: errno [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/server.py:docstring of cheroot.server.HTTPServer.bind_addr:3: WARNING: py:data reference target not found: None [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docstring of cheroot.server.HTTPServer.peercreds_enabled:1: WARNING: py:data reference target not found: True [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docstring of cheroot.server.HTTPServer.peercreds_resolve_enabled:1: WARNING: py:data reference target not found: True [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/__init__.py:docstring of cheroot.ssl.Adapter:1: WARNING: py:class reference target not found: abc.ABC [ref.class] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/builtin.py:docstring of cheroot.ssl.builtin:1: WARNING: py:mod reference target not found: ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/builtin.py:docstring of cheroot.ssl.builtin:3: WARNING: py:mod reference target not found: ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/builtin.py:docstring of cheroot.ssl.builtin.BuiltinSSLAdapter:1: WARNING: py:mod reference target not found: ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/builtin.py:docstring of cheroot.ssl.builtin.BuiltinSSLAdapter.context:1: WARNING: py:class reference target not found: ssl.SSLContext [ref.class] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:1: WARNING: unknown document: 'pyopenssl:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:3: WARNING: py:mod reference target not found: pyopenssl:OpenSSL [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:19: WARNING: py:class reference target not found: pyopenssl:OpenSSL.SSL.Connection [ref.class] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:19: WARNING: py:data reference target not found: pyopenssl:OpenSSL.SSL.SSLv3_METHOD [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:19: WARNING: py:data reference target not found: pyopenssl:OpenSSL.SSL.SSLv3_METHOD [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:19: WARNING: unknown document: 'pyopenssl:api/ssl' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:42: WARNING: py:data reference target not found: None [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:42: WARNING: py:data reference target not found: None [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl.SSLConnection:3: WARNING: py:class reference target not found: pyopenssl:OpenSSL.SSL.Connection [ref.class] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl.pyOpenSSLAdapter:1: WARNING: unknown document: 'pyopenssl:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/docstring of cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate_chain:3: WARNING: py:data reference target not found: None [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_HTTP11_pipelining:3: WARNING: py:mod reference target not found: http.client [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:3: WARNING: py:data reference target not found: errno.ECONNRESET [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:3: WARNING: py:data reference target not found: errno.EPIPE [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:3: WARNING: py:data reference target not found: errno.ESHUTDOWN [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:3: WARNING: py:data reference target not found: errno.ENOTCONN [ref.data] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:3: WARNING: py:exc reference target not found: socket.error [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:3: WARNING: py:meth reference target not found: socket.socket.shutdown [ref.meth] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:11: WARNING: py:exc reference target not found: socket.error [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/test_conn.py:docstring of cheroot.test.test_conn.test_broken_connection_during_tcp_fin:14: WARNING: py:data reference target not found: None [ref.data] :1: WARNING: py:class reference target not found: http.client.HTTPConnection [ref.class] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/test/webtest.py:docstring of cheroot.test.webtest.WebCase._Conn:3: WARNING: py:mod reference target not found: python:http.client [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/cheroot/workers/threadpool.py:docstring of cheroot.workers.threadpool.WorkerThread:1: WARNING: py:class reference target not found: threading.Thread [ref.class] generating indices... genindex [app] emitting event: 'html-page-context'('genindex', 'genindex.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'genindex', 'current_page_name': 'genindex', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f460911be20>, 'hasdoc': .hasdoc at 0x7f460911b530>, 'toctree': . at 0x7f460911bed0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'genindexentries': [('_', [('_abc_impl (cheroot.makefile.BufferedWriter attribute)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.BufferedWriter._abc_impl')], [('(cheroot.makefile.StreamReader attribute)', [('', 'pkg/cheroot.makefile.html#cheroot.makefile.StreamReader._abc_impl')]), ('(cheroot.makefile.StreamWriter attribute)', [('', 'pkg/cheroot.makefile.html#cheroot.makefile.StreamWriter._abc_impl')]), ('(cheroot.ssl.Adapter attribute)', [('', 'pkg/cheroot.ssl.html#cheroot.ssl.Adapter._abc_impl')]), ('(cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter._abc_impl')]), ('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter._abc_impl')]), ('(cheroot.ssl.pyopenssl.SSLFileobjectStreamReader attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectStreamReader._abc_impl')]), ('(cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter._abc_impl')])], None)), ('_allow_header() (cheroot.server.DropUnderscoreHeaderReader method)', ([('', 'pkg/cheroot.server.html#cheroot.server.DropUnderscoreHeaderReader._allow_header')], [('(cheroot.server.HeaderReader method)', [('', 'pkg/cheroot.server.html#cheroot.server.HeaderReader._allow_header')])], None)), ('_asdict() (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._asdict')], [], None)), ('_assert_ssl_exc_contains() (in module cheroot.ssl.builtin)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin._assert_ssl_exc_contains')], [], None)), ('_bind_addr (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer._bind_addr')], [], None)), ('_check_length() (cheroot.server.SizeCheckWrapper method)', ([('', 'pkg/cheroot.server.html#cheroot.server.SizeCheckWrapper._check_length')], [], None)), ('_class_cleanups (cheroot.test.helper.CherootWebCase attribute)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase._class_cleanups')], [('(cheroot.test.webtest.WebCase attribute)', [('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase._class_cleanups')])], None)), ('_classSetupFailed (cheroot.test.helper.CherootWebCase attribute)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase._classSetupFailed')], [('(cheroot.test.webtest.WebCase attribute)', [('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase._classSetupFailed')])], None)), ('_clear_dead_threads() (cheroot.workers.threadpool.ThreadPool method)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool._clear_dead_threads')], [], None)), ('_clear_threads() (cheroot.workers.threadpool.ThreadPool method)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool._clear_threads')], [], None)), ('_close_kernel_socket() (cheroot.server.HTTPConnection method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection._close_kernel_socket')], [], None)), ('_conditional_error() (cheroot.server.HTTPConnection method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection._conditional_error')], [], None)), ('_Conn (cheroot.test.webtest.WebCase property)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase._Conn')], [], None)), ('_decref_socketios() (cheroot.test.test_makefile.MockSocket method)', ([('', 'pkg/cheroot.test.test_makefile.html#cheroot.test.test_makefile.MockSocket._decref_socketios')], [], None)), ('_encode_status() (cheroot.wsgi.Gateway static method)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway._encode_status')], [], None)), ('_expire() (cheroot.connections.ConnectionManager method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager._expire')], [], None)), ('_fetch() (cheroot.server.ChunkedRFile method)', ([('', 'pkg/cheroot.server.html#cheroot.server.ChunkedRFile._fetch')], [], None)), ('_field_defaults (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall attribute)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._field_defaults')], [], None)), ('_fields (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall attribute)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._fields')], [], None)), ('_flush_unlocked() (cheroot.makefile.BufferedWriter method)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.BufferedWriter._flush_unlocked')], [], None)), ('_force_close() (cheroot.workers.threadpool.ThreadPool static method)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool._force_close')], [], None)), ('_from_server_socket() (cheroot.connections.ConnectionManager method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager._from_server_socket')], [], None)), ('_garbage_bin() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server._garbage_bin')], [], None)), ('_get_conn_data() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing._get_conn_data')], [], None)), ('_get_http_response() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core._get_http_response')], [], None)), ('_handle_no_ssl() (cheroot.server.HTTPConnection method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection._handle_no_ssl')], [], None)), ('_handlewebError() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase._handlewebError')], [], None)), ('_interrupt (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer._interrupt')], [], None)), ('_loopback_for_cert() (in module cheroot.ssl.builtin)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin._loopback_for_cert')], [], None)), ('_loopback_for_cert_thread() (in module cheroot.ssl.builtin)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin._loopback_for_cert_thread')], [], None)), ('_make() (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall class method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._make')], [], None)), ('_make_env_cert_dict() (cheroot.ssl.builtin.BuiltinSSLAdapter method)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_cert_dict')], [], None)), ('_make_env_dn_dict() (cheroot.ssl.builtin.BuiltinSSLAdapter method)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_dn_dict')], [], None)), ('_make_env_san_dict() (cheroot.ssl.builtin.BuiltinSSLAdapter method)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_san_dict')], [], None)), ('_make_socket_reusable() (cheroot.server.HTTPServer static method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer._make_socket_reusable')], [], None)), ('_munge() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables._munge')], [('(in module cheroot.test.test_core)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core._munge')])], None)), ('_num_connections (cheroot.connections.ConnectionManager property)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager._num_connections')], [], None)), ('_open_url_once() (in module cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest._open_url_once')], [], None)), ('_parse_cert() (in module cheroot.ssl.builtin)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin._parse_cert')], [], None)), ('_password_callback() (cheroot.ssl.pyopenssl.pyOpenSSLAdapter method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter._password_callback')], [], None)), ('_probe_ipv6_sock() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing._probe_ipv6_sock')], [], None)), ('_process_connections_until_interrupted() (cheroot.workers.threadpool.WorkerThread method)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.WorkerThread._process_connections_until_interrupted')], [], None)), ('_remove_invalid_sockets() (cheroot.connections.ConnectionManager method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager._remove_invalid_sockets')], [], None)), ('_replace() (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._replace')], [], None)), ('_run() (cheroot.connections.ConnectionManager method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager._run')], [], None)), ('_run_in_thread() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer._run_in_thread')], [], None)), ('_safe_call() (cheroot.ssl.pyopenssl.SSLFileobjectMixin method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin._safe_call')], [], None)), ('_serve_unservicable() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer._serve_unservicable')], [], None)), ('_sni_callback() (in module cheroot.ssl.builtin)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin._sni_callback')], [], None)), ('_spawn_worker() (cheroot.workers.threadpool.ThreadPool method)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool._spawn_worker')], [], None)), ('_stopping_for_interrupt (cheroot.server.HTTPServer property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer._stopping_for_interrupt')], [], None)), ('_TestClient (class in cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing._TestClient')], [], None)), ('_TestGateway (class in cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server._TestGateway')], [], None)), ('_thread_except_hook() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl._thread_except_hook')], [], None)), ('_ThreadsafeSelector (class in cheroot.connections)', ([('', 'pkg/cheroot.connections.html#cheroot.connections._ThreadsafeSelector')], [], None)), ('_transform_key() (cheroot.server.HeaderReader method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HeaderReader._transform_key')], [], None))]), ('A', [('AbstractSocket (class in cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.AbstractSocket')], [], None)), ('accept() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.accept')], [], None)), ('acceptable_sock_shutdown_error_codes (in module cheroot.errors)', ([('', 'pkg/cheroot.errors.html#cheroot.errors.acceptable_sock_shutdown_error_codes')], [], None)), ('Adapter (class in cheroot.ssl)', ([('', 'pkg/cheroot.ssl.html#cheroot.ssl.Adapter')], [], None)), ('Application (class in cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.Application')], [], None)), ('assert_native() (in module cheroot._compat)', ([('', 'pkg/cheroot._compat.html#cheroot._compat.assert_native')], [], None)), ('assertBody() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertBody')], [], None)), ('assertEqualDates() (cheroot.test.helper.CherootWebCase method)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.assertEqualDates')], [], None)), ('assertHeader() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertHeader')], [], None)), ('assertHeaderIn() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertHeaderIn')], [], None)), ('assertHeaderItemValue() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertHeaderItemValue')], [], None)), ('assertInBody() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertInBody')], [], None)), ('assertMatchesBody() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertMatchesBody')], [], None)), ('assertNoHeader() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertNoHeader')], [], None)), ('assertNoHeaderItemValue() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertNoHeaderItemValue')], [], None)), ('assertNotInBody() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertNotInBody')], [], None)), ('assertStatus() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.assertStatus')], [], None)), ('asterisk() (cheroot.test.test_core.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.WSGICallables.asterisk')], [], None)), ('available_servers (cheroot.test.helper.CherootWebCase attribute)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.available_servers')], [], None))]), ('B', [('bind() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.bind')], [('(cheroot.ssl.Adapter method)', [('', 'pkg/cheroot.ssl.html#cheroot.ssl.Adapter.bind')]), ('(cheroot.ssl.builtin.BuiltinSSLAdapter method)', [('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.bind')]), ('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.bind')]), ('(cheroot.ssl.pyopenssl.SSLConnection method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.bind')])], None)), ('bind_addr (cheroot.server.HTTPServer property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.bind_addr')], [], None)), ('bind_socket() (cheroot.server.HTTPServer static method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.bind_socket')], [], None)), ('bind_unix_socket() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.bind_unix_socket')], [], None)), ('BindLocation (class in cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.BindLocation')], [], None)), ('body (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.body')], [], None)), ('body_required() (cheroot.test.test_core.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.WSGICallables.body_required')], [], None)), ('bton() (in module cheroot._compat)', ([('', 'pkg/cheroot._compat.html#cheroot._compat.bton')], [], None)), ('BufferedWriter (class in cheroot.makefile)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.BufferedWriter')], [], None)), ('BuiltinSSLAdapter (class in cheroot.ssl.builtin)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter')], [], None))]), ('C', [('ca() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.ca')], [], None)), ('can_add_keepalive_connection (cheroot.connections.ConnectionManager property)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager.can_add_keepalive_connection')], [('(cheroot.server.HTTPServer property)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.can_add_keepalive_connection')])], None)), ('CERT_KEY_TO_ENV (cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.CERT_KEY_TO_ENV')], [], None)), ('CERT_KEY_TO_LDAP_CODE (cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.CERT_KEY_TO_LDAP_CODE')], [], None)), ('certificate (cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.certificate')], [('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate')])], None)), ('certificate_chain (cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.certificate_chain')], [('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate_chain')])], None)), ('cheroot', ([], [('module', [('', 'pkg/cheroot.html#module-cheroot')])], None)), ('cheroot.__main__', ([], [('module', [('', 'pkg/cheroot.__main__.html#module-cheroot.__main__')])], None)), ('cheroot._compat', ([], [('module', [('', 'pkg/cheroot._compat.html#module-cheroot._compat')])], None)), ('cheroot.cli', ([], [('module', [('', 'pkg/cheroot.cli.html#module-cheroot.cli')])], None)), ('cheroot.connections', ([], [('module', [('', 'pkg/cheroot.connections.html#module-cheroot.connections')])], None)), ('cheroot.errors', ([], [('module', [('', 'pkg/cheroot.errors.html#module-cheroot.errors')])], None)), ('cheroot.makefile', ([], [('module', [('', 'pkg/cheroot.makefile.html#module-cheroot.makefile')])], None)), ('cheroot.server', ([], [('module', [('', 'pkg/cheroot.server.html#module-cheroot.server')])], None)), ('cheroot.ssl', ([], [('module', [('', 'pkg/cheroot.ssl.html#module-cheroot.ssl')])], None)), ('cheroot.ssl.builtin', ([], [('module', [('', 'pkg/cheroot.ssl.builtin.html#module-cheroot.ssl.builtin')])], None)), ('cheroot.ssl.pyopenssl', ([], [('module', [('', 'pkg/cheroot.ssl.pyopenssl.html#module-cheroot.ssl.pyopenssl')])], None)), ('cheroot.test', ([], [('module', [('', 'pkg/cheroot.test.html#module-cheroot.test')])], None)), ('cheroot.test._pytest_plugin', ([], [('module', [('', 'pkg/cheroot.test._pytest_plugin.html#module-cheroot.test._pytest_plugin')])], None)), ('cheroot.test.conftest', ([], [('module', [('', 'pkg/cheroot.test.conftest.html#module-cheroot.test.conftest')])], None)), ('cheroot.test.helper', ([], [('module', [('', 'pkg/cheroot.test.helper.html#module-cheroot.test.helper')])], None)), ('cheroot.test.test__compat', ([], [('module', [('', 'pkg/cheroot.test.test__compat.html#module-cheroot.test.test__compat')])], None)), ('cheroot.test.test_cli', ([], [('module', [('', 'pkg/cheroot.test.test_cli.html#module-cheroot.test.test_cli')])], None)), ('cheroot.test.test_conn', ([], [('module', [('', 'pkg/cheroot.test.test_conn.html#module-cheroot.test.test_conn')])], None)), ('cheroot.test.test_core', ([], [('module', [('', 'pkg/cheroot.test.test_core.html#module-cheroot.test.test_core')])], None)), ('cheroot.test.test_dispatch', ([], [('module', [('', 'pkg/cheroot.test.test_dispatch.html#module-cheroot.test.test_dispatch')])], None)), ('cheroot.test.test_errors', ([], [('module', [('', 'pkg/cheroot.test.test_errors.html#module-cheroot.test.test_errors')])], None)), ('cheroot.test.test_makefile', ([], [('module', [('', 'pkg/cheroot.test.test_makefile.html#module-cheroot.test.test_makefile')])], None)), ('cheroot.test.test_server', ([], [('module', [('', 'pkg/cheroot.test.test_server.html#module-cheroot.test.test_server')])], None)), ('cheroot.test.test_ssl', ([], [('module', [('', 'pkg/cheroot.test.test_ssl.html#module-cheroot.test.test_ssl')])], None)), ('cheroot.test.test_wsgi', ([], [('module', [('', 'pkg/cheroot.test.test_wsgi.html#module-cheroot.test.test_wsgi')])], None)), ('cheroot.test.webtest', ([], [('module', [('', 'pkg/cheroot.test.webtest.html#module-cheroot.test.webtest')])], None)), ('cheroot.testing', ([], [('module', [('', 'pkg/cheroot.testing.html#module-cheroot.testing')])], None)), ('cheroot.workers', ([], [('module', [('', 'pkg/cheroot.workers.html#module-cheroot.workers')])], None)), ('cheroot.workers.threadpool', ([], [('module', [('', 'pkg/cheroot.workers.threadpool.html#module-cheroot.workers.threadpool')])], None)), ('cheroot.wsgi', ([], [('module', [('', 'pkg/cheroot.wsgi.html#module-cheroot.wsgi')])], None)), ('cheroot_server() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing.cheroot_server')], [], None)), ('CherootWebCase (class in cheroot.test.helper)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase')], [], None)), ('chunked_write (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.chunked_write')], [], None)), ('ChunkedRFile (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.ChunkedRFile')], [], None)), ('ciphers (cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.ciphers')], [('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.ciphers')])], None)), ('cleanHeaders() (in module cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.cleanHeaders')], [], None)), ('clear_stats() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.clear_stats')], [], None)), ('close() (cheroot.connections._ThreadsafeSelector method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections._ThreadsafeSelector.close')], [('(cheroot.connections.ConnectionManager method)', [('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager.close')]), ('(cheroot.server.ChunkedRFile method)', [('', 'pkg/cheroot.server.html#cheroot.server.ChunkedRFile.close')]), ('(cheroot.server.HTTPConnection method)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.close')]), ('(cheroot.server.KnownLengthRFile method)', [('', 'pkg/cheroot.server.html#cheroot.server.KnownLengthRFile.close')]), ('(cheroot.server.SizeCheckWrapper method)', [('', 'pkg/cheroot.server.html#cheroot.server.SizeCheckWrapper.close')]), ('(cheroot.ssl.pyopenssl.SSLConnection method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.close')]), ('(cheroot.test.test_core.CloseController method)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.CloseController.close')])], None)), ('close_connection (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.close_connection')], [], None)), ('CloseController (class in cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.CloseController')], [], None)), ('CloseResponse (class in cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.CloseResponse')], [], None)), ('communicate() (cheroot.server.HTTPConnection method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.communicate')], [], None)), ('conn (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.conn')], [('(cheroot.workers.threadpool.WorkerThread attribute)', [('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.WorkerThread.conn')])], None)), ('connect() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.connect')], [], None)), ('connect_ex() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.connect_ex')], [], None)), ('ConnectionClass (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.ConnectionClass')], [], None)), ('ConnectionManager (class in cheroot.connections)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager')], [], None)), ('connections (cheroot.connections._ThreadsafeSelector property)', ([('', 'pkg/cheroot.connections.html#cheroot.connections._ThreadsafeSelector.connections')], [], None)), ('console_height (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.console_height')], [], None)), ('context (cheroot.ssl.builtin.BuiltinSSLAdapter property)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.context')], [('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.context')])], None)), ('Controller (class in cheroot.test.helper)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.Controller')], [('(class in cheroot.test.test_conn)', [('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.Controller')])], None)), ('custom_204() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.custom_204')], [], None)), ('custom_304() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.custom_304')], [], None))]), ('D', [('date_tolerance (cheroot.test.helper.CherootWebCase attribute)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.date_tolerance')], [], None)), ('DropUnderscoreHeaderReader (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.DropUnderscoreHeaderReader')], [], None))]), ('E', [('encoding (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.encoding')], [], None)), ('ensure_headers_sent() (cheroot.server.HTTPRequest method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.ensure_headers_sent')], [], None)), ('err_before_read() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.err_before_read')], [], None)), ('error_log() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.error_log')], [], None)), ('ErrorLogMonitor (class in cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor')], [], None)), ('ErrorLogMonitor.ErrorLogCall (class in cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall')], [], None)), ('expiration_interval (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.expiration_interval')], [], None)), ('extract_bytes() (in module cheroot._compat)', ([('', 'pkg/cheroot._compat.html#cheroot._compat.extract_bytes')], [], None))]), ('F', [('family (cheroot.ssl.pyopenssl.SSLConnection property)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.family')], [], None)), ('FatalSSLAlert', ([('', 'pkg/cheroot.errors.html#cheroot.errors.FatalSSLAlert')], [], None)), ('FaultyGetMap (class in cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.FaultyGetMap')], [], None)), ('FaultySelect (class in cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.FaultySelect')], [], None)), ('fileno() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.fileno')], [], None))]), ('G', [('gateway (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.gateway')], [], None)), ('Gateway (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.Gateway')], [('(class in cheroot.wsgi)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway')])], None)), ('Gateway_10 (class in cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway_10')], [], None)), ('gateway_map() (cheroot.wsgi.Gateway class method)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway.gateway_map')], [], None)), ('Gateway_u0 (class in cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway_u0')], [], None)), ('GatewayYo (class in cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.GatewayYo')], [], None)), ('get_app_data() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.get_app_data')], [], None)), ('get_cipher_list() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.get_cipher_list')], [], None)), ('get_conn() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.get_conn')], [], None)), ('get_connection() (cheroot.testing._TestClient method)', ([('', 'pkg/cheroot.testing.html#cheroot.testing._TestClient.get_connection')], [], None)), ('get_context() (cheroot.ssl.pyopenssl.pyOpenSSLAdapter method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_context')], [('(cheroot.ssl.pyopenssl.SSLConnection method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.get_context')])], None)), ('get_environ() (cheroot.ssl.Adapter method)', ([('', 'pkg/cheroot.ssl.html#cheroot.ssl.Adapter.get_environ')], [('(cheroot.ssl.builtin.BuiltinSSLAdapter method)', [('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.get_environ')]), ('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_environ')]), ('(cheroot.wsgi.Gateway method)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway.get_environ')]), ('(cheroot.wsgi.Gateway_10 method)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway_10.get_environ')]), ('(cheroot.wsgi.Gateway_u0 method)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway_u0.get_environ')])], None)), ('get_peer_certificate() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.get_peer_certificate')], [], None)), ('get_peer_creds() (cheroot.server.HTTPConnection method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.get_peer_creds')], [], None)), ('get_server_client() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing.get_server_client')], [], None)), ('get_ssl_adapter_class() (in module cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.get_ssl_adapter_class')], [], None)), ('getchar() (in module cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.getchar')], [], None)), ('getPage() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.getPage')], [], None)), ('getpeername() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.getpeername')], [], None)), ('getsockname() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.getsockname')], [], None)), ('getsockopt() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.getsockopt')], [], None)), ('gettimeout() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.gettimeout')], [], None)), ('grow() (cheroot.workers.threadpool.ThreadPool method)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool.grow')], [], None))]), ('H', [('handlers (cheroot.test.test_conn.Controller attribute)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.Controller.handlers')], [('(cheroot.test.test_core.HelloController attribute)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.HelloController.handlers')])], None)), ('has_data() (cheroot.makefile.StreamReader method)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.StreamReader.has_data')], [], None)), ('header_exists() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.header_exists')], [], None)), ('header_has_value() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.header_has_value')], [], None)), ('header_reader (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.header_reader')], [], None)), ('HeaderReader (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.HeaderReader')], [], None)), ('headers (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.headers')], [], None)), ('hello() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.hello')], [('(cheroot.test.test_core.WSGICallables static method)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.WSGICallables.hello')])], None)), ('HelloController (class in cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.HelloController')], [], None)), ('HelloWorldGateway (class in cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.HelloWorldGateway')], [], None)), ('HOST (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.HOST')], [], None)), ('HTTP_CONN (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.HTTP_CONN')], [], None)), ('http_request_timeout() (in module cheroot.test.conftest)', ([('', 'pkg/cheroot.test.conftest.html#cheroot.test.conftest.http_request_timeout')], [], None)), ('http_server() (in module cheroot.test.conftest)', ([('', 'pkg/cheroot.test.conftest.html#cheroot.test.conftest.http_server')], [], None)), ('HTTPConnection (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection')], [], None)), ('HTTPRequest (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest')], [], None)), ('HTTPServer (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer')], [], None))]), ('I', [('idle (cheroot.workers.threadpool.ThreadPool property)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool.idle')], [], None)), ('inheaders (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.inheaders')], [], None)), ('interactive (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.interactive')], [], None)), ('interface() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.interface')], [('(in module cheroot.test.webtest)', [('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.interface')])], None)), ('interrupt (cheroot.server.HTTPServer property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.interrupt')], [], None)), ('IPv4', ([('main', 'pkg/cheroot.server.html#term-IPv4')], [], None)), ('IPv6', ([('main', 'pkg/cheroot.server.html#term-IPv6')], [], None))]), ('K', [('keep_alive_conn_limit (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.keep_alive_conn_limit')], [], None)), ('KnownLengthRFile (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.KnownLengthRFile')], [], None))]), ('L', [('last_used (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.last_used')], [], None)), ('level (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall attribute)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.level')], [], None)), ('linger (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.linger')], [], None)), ('listen() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.listen')], [], None))]), ('M', [('main() (in module cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.main')], [], None)), ('make_http_server() (in module cheroot.test.conftest)', ([('', 'pkg/cheroot.test.conftest.html#cheroot.test.conftest.make_http_server')], [], None)), ('make_tls_http_server() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.make_tls_http_server')], [], None)), ('makefile() (cheroot.ssl.Adapter method)', ([('', 'pkg/cheroot.ssl.html#cheroot.ssl.Adapter.makefile')], [('(cheroot.ssl.builtin.BuiltinSSLAdapter method)', [('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.makefile')]), ('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.makefile')]), ('(cheroot.ssl.pyopenssl.SSLConnection method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.makefile')])], None)), ('MakeFile() (in module cheroot.makefile)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.MakeFile')], [], None)), ('many_open_sockets() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.many_open_sockets')], [], None)), ('max_request_body_size (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.max_request_body_size')], [], None)), ('max_request_header_size (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.max_request_header_size')], [], None)), ('MaxSizeExceeded', ([('', 'pkg/cheroot.errors.html#cheroot.errors.MaxSizeExceeded')], [], None)), ('maxthreads (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.maxthreads')], [], None)), ('minthreads (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.minthreads')], [], None)), ('MockSocket (class in cheroot.test.test_makefile)', ([('', 'pkg/cheroot.test.test_makefile.html#cheroot.test.test_makefile.MockSocket')], [], None)), ('module', ([], [('cheroot', [('', 'pkg/cheroot.html#module-cheroot')]), ('cheroot.__main__', [('', 'pkg/cheroot.__main__.html#module-cheroot.__main__')]), ('cheroot._compat', [('', 'pkg/cheroot._compat.html#module-cheroot._compat')]), ('cheroot.cli', [('', 'pkg/cheroot.cli.html#module-cheroot.cli')]), ('cheroot.connections', [('', 'pkg/cheroot.connections.html#module-cheroot.connections')]), ('cheroot.errors', [('', 'pkg/cheroot.errors.html#module-cheroot.errors')]), ('cheroot.makefile', [('', 'pkg/cheroot.makefile.html#module-cheroot.makefile')]), ('cheroot.server', [('', 'pkg/cheroot.server.html#module-cheroot.server')]), ('cheroot.ssl', [('', 'pkg/cheroot.ssl.html#module-cheroot.ssl')]), ('cheroot.ssl.builtin', [('', 'pkg/cheroot.ssl.builtin.html#module-cheroot.ssl.builtin')]), ('cheroot.ssl.pyopenssl', [('', 'pkg/cheroot.ssl.pyopenssl.html#module-cheroot.ssl.pyopenssl')]), ('cheroot.test', [('', 'pkg/cheroot.test.html#module-cheroot.test')]), ('cheroot.test._pytest_plugin', [('', 'pkg/cheroot.test._pytest_plugin.html#module-cheroot.test._pytest_plugin')]), ('cheroot.test.conftest', [('', 'pkg/cheroot.test.conftest.html#module-cheroot.test.conftest')]), ('cheroot.test.helper', [('', 'pkg/cheroot.test.helper.html#module-cheroot.test.helper')]), ('cheroot.test.test__compat', [('', 'pkg/cheroot.test.test__compat.html#module-cheroot.test.test__compat')]), ('cheroot.test.test_cli', [('', 'pkg/cheroot.test.test_cli.html#module-cheroot.test.test_cli')]), ('cheroot.test.test_conn', [('', 'pkg/cheroot.test.test_conn.html#module-cheroot.test.test_conn')]), ('cheroot.test.test_core', [('', 'pkg/cheroot.test.test_core.html#module-cheroot.test.test_core')]), ('cheroot.test.test_dispatch', [('', 'pkg/cheroot.test.test_dispatch.html#module-cheroot.test.test_dispatch')]), ('cheroot.test.test_errors', [('', 'pkg/cheroot.test.test_errors.html#module-cheroot.test.test_errors')]), ('cheroot.test.test_makefile', [('', 'pkg/cheroot.test.test_makefile.html#module-cheroot.test.test_makefile')]), ('cheroot.test.test_server', [('', 'pkg/cheroot.test.test_server.html#module-cheroot.test.test_server')]), ('cheroot.test.test_ssl', [('', 'pkg/cheroot.test.test_ssl.html#module-cheroot.test.test_ssl')]), ('cheroot.test.test_wsgi', [('', 'pkg/cheroot.test.test_wsgi.html#module-cheroot.test.test_wsgi')]), ('cheroot.test.webtest', [('', 'pkg/cheroot.test.webtest.html#module-cheroot.test.webtest')]), ('cheroot.testing', [('', 'pkg/cheroot.testing.html#module-cheroot.testing')]), ('cheroot.workers', [('', 'pkg/cheroot.workers.html#module-cheroot.workers')]), ('cheroot.workers.threadpool', [('', 'pkg/cheroot.workers.threadpool.html#module-cheroot.workers.threadpool')]), ('cheroot.wsgi', [('', 'pkg/cheroot.wsgi.html#module-cheroot.wsgi')])], None)), ('msg (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall attribute)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.msg')], [], None))]), ('N', [('native_server() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing.native_server')], [], None)), ('native_server_client() (in module cheroot.test.conftest)', ([('', 'pkg/cheroot.test.conftest.html#cheroot.test.conftest.native_server_client')], [], None)), ('native_server_thread() (in module cheroot.test.conftest)', ([('', 'pkg/cheroot.test.conftest.html#cheroot.test.conftest.native_server_thread')], [], None)), ('next() (cheroot.server.KnownLengthRFile method)', ([('', 'pkg/cheroot.server.html#cheroot.server.KnownLengthRFile.next')], [('(cheroot.server.SizeCheckWrapper method)', [('', 'pkg/cheroot.server.html#cheroot.server.SizeCheckWrapper.next')])], None)), ('nodelay (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.nodelay')], [], None)), ('NonDataProperty (class in cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.NonDataProperty')], [], None)), ('NoSSLError', ([('', 'pkg/cheroot.errors.html#cheroot.errors.NoSSLError')], [], None)), ('ntob() (in module cheroot._compat)', ([('', 'pkg/cheroot._compat.html#cheroot._compat.ntob')], [], None)), ('ntou() (in module cheroot._compat)', ([('', 'pkg/cheroot._compat.html#cheroot._compat.ntou')], [], None)), ('numthreads (cheroot.wsgi.Server property)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Server.numthreads')], [], None))]), ('O', [('on (cheroot.test.webtest.ServerError attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.ServerError.on')], [], None)), ('one_megabyte_of_a() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.one_megabyte_of_a')], [], None)), ('openURL() (in module cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.openURL')], [], None)), ('outheaders (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.outheaders')], [], None)), ('output() (cheroot.test.helper.Response method)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.Response.output')], [('(cheroot.test.test_core.CloseResponse method)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.CloseResponse.output')])], None))]), ('P', [('parse_request() (cheroot.server.HTTPRequest method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.parse_request')], [], None)), ('parse_wsgi_bind_addr() (in module cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.parse_wsgi_bind_addr')], [], None)), ('parse_wsgi_bind_location() (in module cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.parse_wsgi_bind_location')], [], None)), ('PathInfoDispatcher (class in cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.PathInfoDispatcher')], [], None)), ('peer_gid (cheroot.server.HTTPConnection property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.peer_gid')], [], None)), ('peer_group (cheroot.server.HTTPConnection property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.peer_group')], [], None)), ('peer_pid (cheroot.server.HTTPConnection property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.peer_pid')], [], None)), ('peer_uid (cheroot.server.HTTPConnection property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.peer_uid')], [], None)), ('peer_user (cheroot.server.HTTPConnection property)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.peer_user')], [], None)), ('peercreds_enabled (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.peercreds_enabled')], [('(cheroot.server.HTTPServer attribute)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.peercreds_enabled')])], None)), ('peercreds_enabled_server() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.peercreds_enabled_server')], [], None)), ('peercreds_resolve_enabled (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.peercreds_resolve_enabled')], [('(cheroot.server.HTTPServer attribute)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.peercreds_resolve_enabled')])], None)), ('pending() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.pending')], [], None)), ('persistent (cheroot.test.webtest.WebCase property)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.persistent')], [], None)), ('plat_specific_errors() (in module cheroot.errors)', ([('', 'pkg/cheroot.errors.html#cheroot.errors.plat_specific_errors')], [], None)), ('PORT (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.PORT')], [], None)), ('pov() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.pov')], [], None)), ('prepare() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.prepare')], [], None)), ('prepare_socket() (cheroot.server.HTTPServer class method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.prepare_socket')], [], None)), ('prevent_socket_inheritance() (in module cheroot.connections)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.prevent_socket_inheritance')], [], None)), ('private_key (cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.private_key')], [('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key')])], None)), ('private_key_password (cheroot.ssl.builtin.BuiltinSSLAdapter attribute)', ([('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.private_key_password')], [('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter attribute)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key_password')])], None)), ('private_key_password() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.private_key_password')], [], None)), ('process_conn() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.process_conn')], [], None)), ('protocol (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.protocol')], [], None)), ('PROTOCOL (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.PROTOCOL')], [], None)), ('put() (cheroot.connections.ConnectionManager method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager.put')], [('(cheroot.workers.threadpool.ThreadPool method)', [('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool.put')])], None)), ('put_conn() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.put_conn')], [], None)), ('pyOpenSSLAdapter (class in cheroot.ssl.pyopenssl)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter')], [], None)), ('pytest_load_initial_conftests() (in module cheroot.test._pytest_plugin)', ([('', 'pkg/cheroot.test._pytest_plugin.html#cheroot.test._pytest_plugin.pytest_load_initial_conftests')], [], None)), ('Python Enhancement Proposals', ([], [('PEP 257', [('', 'history.html#index-10'), ('', 'history.html#index-14'), ('', 'history.html#index-2'), ('', 'history.html#index-6')]), ('PEP 333', [('', 'pkg/cheroot.wsgi.html#index-1')]), ('PEP 3333', [('', 'pkg/cheroot.wsgi.html#index-0')]), ('PEP 440', [('', 'contributing/release_guide.html#index-0')]), ('PEP 621', [('', 'history.html#index-0'), ('', 'history.html#index-8')]), ('PEP 8', [('', 'history.html#index-1'), ('', 'history.html#index-15'), ('', 'history.html#index-7'), ('', 'history.html#index-9')])], None))]), ('Q', [('qsize (cheroot.workers.threadpool.ThreadPool property)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool.qsize')], [], None)), ('query_string() (cheroot.test.test_core.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.WSGICallables.query_string')], [], None))]), ('R', [('raw_testing_server() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.raw_testing_server')], [], None)), ('rbufsize (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.rbufsize')], [], None)), ('read() (cheroot.makefile.StreamReader method)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.StreamReader.read')], [('(cheroot.server.ChunkedRFile method)', [('', 'pkg/cheroot.server.html#cheroot.server.ChunkedRFile.read')]), ('(cheroot.server.KnownLengthRFile method)', [('', 'pkg/cheroot.server.html#cheroot.server.KnownLengthRFile.read')]), ('(cheroot.server.SizeCheckWrapper method)', [('', 'pkg/cheroot.server.html#cheroot.server.SizeCheckWrapper.read')]), ('(cheroot.ssl.pyopenssl.SSLConnection method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.read')])], None)), ('read_request_headers() (cheroot.server.HTTPRequest method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.read_request_headers')], [], None)), ('read_request_line() (cheroot.server.HTTPRequest method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.read_request_line')], [], None)), ('read_trailer_lines() (cheroot.server.ChunkedRFile method)', ([('', 'pkg/cheroot.server.html#cheroot.server.ChunkedRFile.read_trailer_lines')], [], None)), ('readline() (cheroot.server.ChunkedRFile method)', ([('', 'pkg/cheroot.server.html#cheroot.server.ChunkedRFile.readline')], [('(cheroot.server.KnownLengthRFile method)', [('', 'pkg/cheroot.server.html#cheroot.server.KnownLengthRFile.readline')]), ('(cheroot.server.SizeCheckWrapper method)', [('', 'pkg/cheroot.server.html#cheroot.server.SizeCheckWrapper.readline')]), ('(cheroot.ssl.pyopenssl.SSLFileobjectMixin method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin.readline')])], None)), ('readlines() (cheroot.server.ChunkedRFile method)', ([('', 'pkg/cheroot.server.html#cheroot.server.ChunkedRFile.readlines')], [('(cheroot.server.KnownLengthRFile method)', [('', 'pkg/cheroot.server.html#cheroot.server.KnownLengthRFile.readlines')]), ('(cheroot.server.SizeCheckWrapper method)', [('', 'pkg/cheroot.server.html#cheroot.server.SizeCheckWrapper.readlines')])], None)), ('ready (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.ready')], [('(cheroot.server.HTTPServer attribute)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.ready')]), ('(cheroot.workers.threadpool.WorkerThread attribute)', [('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.WorkerThread.ready')])], None)), ('recv() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.recv')], [('(cheroot.ssl.pyopenssl.SSLFileobjectMixin method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin.recv')]), ('(cheroot.test.test_makefile.MockSocket method)', [('', 'pkg/cheroot.test.test_makefile.html#cheroot.test.test_makefile.MockSocket.recv')])], None)), ('recv_into() (cheroot.test.test_makefile.MockSocket method)', ([('', 'pkg/cheroot.test.test_makefile.html#cheroot.test.test_makefile.MockSocket.recv_into')], [], None)), ('register() (cheroot.connections._ThreadsafeSelector method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections._ThreadsafeSelector.register')], [], None)), ('remote_addr (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.remote_addr')], [], None)), ('remote_port (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.remote_port')], [], None)), ('renegotiate() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.renegotiate')], [], None)), ('Request (class in cheroot.test.helper)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.Request')], [], None)), ('request() (cheroot.testing._TestClient method)', ([('', 'pkg/cheroot.testing.html#cheroot.testing._TestClient.request')], [], None)), ('request_queue_size (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.request_queue_size')], [], None)), ('RequestHandlerClass (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.RequestHandlerClass')], [], None)), ('resolve() (cheroot.cli.Application class method)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.Application.resolve')], [], None)), ('resolve_peer_creds() (cheroot.server.HTTPConnection method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.resolve_peer_creds')], [], None)), ('resolve_real_bind_addr() (cheroot.server.HTTPServer static method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.resolve_real_bind_addr')], [], None)), ('resource_limit() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.resource_limit')], [], None)), ('respond() (cheroot.server.Gateway method)', ([('', 'pkg/cheroot.server.html#cheroot.server.Gateway.respond')], [('(cheroot.server.HTTPRequest method)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.respond')]), ('(cheroot.test.test_server._TestGateway method)', [('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server._TestGateway.respond')]), ('(cheroot.test.test_ssl.HelloWorldGateway method)', [('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.HelloWorldGateway.respond')]), ('(cheroot.wsgi.Gateway method)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway.respond')])], None)), ('Response (class in cheroot.test.helper)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.Response')], [], None)), ('reuse_port (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.reuse_port')], [], None)), ('RFC', ([], [('RFC 2616', [('', 'history.html#index-13'), ('', 'history.html#index-5')]), ('RFC 7230', [('', 'history.html#index-11'), ('', 'history.html#index-3')]), ('RFC 7231', [('', 'history.html#index-12'), ('', 'history.html#index-4')])], None)), ('run() (cheroot.connections.ConnectionManager method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager.run')], [('(cheroot.workers.threadpool.WorkerThread method)', [('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.WorkerThread.run')])], None)), ('runtime() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.runtime')], [], None))]), ('S', [('safe_start() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.safe_start')], [], None)), ('scheme (cheroot.test.helper.CherootWebCase attribute)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.scheme')], [('(cheroot.test.webtest.WebCase attribute)', [('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.scheme')])], None)), ('script_name (cheroot.test.helper.CherootWebCase attribute)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.script_name')], [], None)), ('select() (cheroot.connections._ThreadsafeSelector method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections._ThreadsafeSelector.select')], [], None)), ('send() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.send')], [('(cheroot.ssl.pyopenssl.SSLFileobjectMixin method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin.send')]), ('(cheroot.test.test_makefile.MockSocket method)', [('', 'pkg/cheroot.test.test_makefile.html#cheroot.test.test_makefile.MockSocket.send')])], None)), ('send_headers() (cheroot.server.HTTPRequest method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.send_headers')], [], None)), ('send_payload() (cheroot.test.test_server._TestGateway method)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server._TestGateway.send_payload')], [], None)), ('sendall() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.sendall')], [('(cheroot.ssl.pyopenssl.SSLFileobjectMixin method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin.sendall')])], None)), ('serve() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.serve')], [], None)), ('server (cheroot.server.HTTPRequest attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.server')], [('(cheroot.workers.threadpool.WorkerThread attribute)', [('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.WorkerThread.server')])], None)), ('Server (class in cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Server')], [], None)), ('server() (cheroot.cli.Application method)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.Application.server')], [('(cheroot.cli.GatewayYo method)', [('', 'pkg/cheroot.cli.html#cheroot.cli.GatewayYo.server')])], None)), ('server_args() (cheroot.cli.Application method)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.Application.server_args')], [], None)), ('server_error() (in module cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.server_error')], [], None)), ('server_name (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.server_name')], [], None)), ('ServerError', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.ServerError')], [], None)), ('set_accept_state() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.set_accept_state')], [], None)), ('set_app_data() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.set_app_data')], [], None)), ('set_connect_state() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.set_connect_state')], [], None)), ('set_persistent() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.set_persistent')], [], None)), ('setblocking() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.setblocking')], [], None)), ('setsockopt() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.setsockopt')], [], None)), ('settimeout() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.settimeout')], [], None)), ('setup_class() (cheroot.test.helper.CherootWebCase class method)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.setup_class')], [], None)), ('shb() (in module cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.shb')], [], None)), ('shrink() (cheroot.workers.threadpool.ThreadPool method)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool.shrink')], [], None)), ('shutdown() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.shutdown')], [], None)), ('shutdown_timeout (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.shutdown_timeout')], [], None)), ('simple_response() (cheroot.server.HTTPRequest method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.simple_response')], [], None)), ('simple_wsgi_server() (in module cheroot.test.test_wsgi)', ([('', 'pkg/cheroot.test.test_wsgi.html#cheroot.test.test_wsgi.simple_wsgi_server')], [], None)), ('SizeCheckWrapper (class in cheroot.server)', ([('', 'pkg/cheroot.server.html#cheroot.server.SizeCheckWrapper')], [], None)), ('sock_shutdown() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.sock_shutdown')], [], None)), ('software (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.software')], [], None)), ('ssl_adapter (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.ssl_adapter')], [], None)), ('ssl_context (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.ssl_context')], [], None)), ('ssl_env (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.ssl_env')], [], None)), ('ssl_retry (cheroot.ssl.pyopenssl.SSLFileobjectMixin attribute)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin.ssl_retry')], [], None)), ('ssl_timeout (cheroot.ssl.pyopenssl.SSLFileobjectMixin attribute)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin.ssl_timeout')], [], None)), ('SSLConnection (class in cheroot.ssl.pyopenssl)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection')], [], None)), ('SSLConnectionProxyMeta (class in cheroot.ssl.pyopenssl)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnectionProxyMeta')], [], None)), ('SSLFileobjectMixin (class in cheroot.ssl.pyopenssl)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectMixin')], [], None)), ('SSLFileobjectStreamReader (class in cheroot.ssl.pyopenssl)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectStreamReader')], [], None)), ('SSLFileobjectStreamWriter (class in cheroot.ssl.pyopenssl)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter')], [], None)), ('start() (cheroot.server.HTTPServer method)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.start')], [('(cheroot.test.helper.CherootWebCase class method)', [('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.start')]), ('(cheroot.workers.threadpool.ThreadPool method)', [('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool.start')])], None)), ('start_response() (cheroot.wsgi.Gateway method)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway.start_response')], [], None)), ('state_string() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.state_string')], [], None)), ('status (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.status')], [], None)), ('status_code (cheroot.test.webtest.WebCase property)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.status_code')], [], None)), ('status_matches() (cheroot.test.webtest.WebCase method)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.status_matches')], [], None)), ('stop() (cheroot.connections.ConnectionManager method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections.ConnectionManager.stop')], [('(cheroot.server.HTTPServer method)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.stop')]), ('(cheroot.test.helper.CherootWebCase class method)', [('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.stop')]), ('(cheroot.workers.threadpool.ThreadPool method)', [('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool.stop')])], None)), ('stream() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.stream')], [], None)), ('StreamReader (class in cheroot.makefile)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.StreamReader')], [], None)), ('StreamWriter (class in cheroot.makefile)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.StreamWriter')], [], None)), ('strip_netloc() (in module cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.strip_netloc')], [], None))]), ('T', [('TCPSocket (class in cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.TCPSocket')], [], None)), ('teardown_class() (cheroot.test.helper.CherootWebCase class method)', ([('', 'pkg/cheroot.test.helper.html#cheroot.test.helper.CherootWebCase.teardown_class')], [], None)), ('test_100_Continue() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_100_Continue')], [], None)), ('test_598() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_598')], [], None)), ('test_Aplication_resolve() (in module cheroot.test.test_cli)', ([('', 'pkg/cheroot.test.test_cli.html#cheroot.test.test_cli.test_Aplication_resolve')], [], None)), ('test_bind_addr_inet() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_bind_addr_inet')], [], None)), ('test_bind_addr_unix() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_bind_addr_unix')], [], None)), ('test_bind_addr_unix_abstract() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_bind_addr_unix_abstract')], [], None)), ('test_broken_connection_during_http_communication_fallback() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_broken_connection_during_http_communication_fallback')], [], None)), ('test_broken_connection_during_tcp_fin() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_broken_connection_during_tcp_fin')], [], None)), ('test_builtin_adapter_with_false_key_password() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_builtin_adapter_with_false_key_password')], [], None)), ('test_bytes_read() (in module cheroot.test.test_makefile)', ([('', 'pkg/cheroot.test.test_makefile.html#cheroot.test.test_makefile.test_bytes_read')], [], None)), ('test_bytes_written() (in module cheroot.test.test_makefile)', ([('', 'pkg/cheroot.test.test_makefile.html#cheroot.test.test_makefile.test_bytes_written')], [], None)), ('test_Chunked_Encoding() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_Chunked_Encoding')], [], None)), ('test_client() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_client')], [('(in module cheroot.test.test_core)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_client')])], None)), ('test_client_with_defaults() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_client_with_defaults')], [], None)), ('test_compat_functions_negative_nonnative() (in module cheroot.test.test__compat)', ([('', 'pkg/cheroot.test.test__compat.html#cheroot.test.test__compat.test_compat_functions_negative_nonnative')], [], None)), ('test_compat_functions_positive() (in module cheroot.test.test__compat)', ([('', 'pkg/cheroot.test.test__compat.html#cheroot.test.test__compat.test_compat_functions_positive')], [], None)), ('test_connection_keepalive() (in module cheroot.test.test_wsgi)', ([('', 'pkg/cheroot.test.test_wsgi.html#cheroot.test.test_wsgi.test_connection_keepalive')], [], None)), ('test_Content_Length_in() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_Content_Length_in')], [], None)), ('test_Content_Length_not_int() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_Content_Length_not_int')], [], None)), ('test_Content_Length_out() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_Content_Length_out')], [], None)), ('test_content_length_required() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_content_length_required')], [], None)), ('test_dispatch_no_script_name() (in module cheroot.test.test_dispatch)', ([('', 'pkg/cheroot.test.test_dispatch.html#cheroot.test.test_dispatch.test_dispatch_no_script_name')], [], None)), ('test_extract_bytes() (in module cheroot.test.test__compat)', ([('', 'pkg/cheroot.test.test__compat.html#cheroot.test.test__compat.test_extract_bytes')], [], None)), ('test_extract_bytes_invalid() (in module cheroot.test.test__compat)', ([('', 'pkg/cheroot.test.test__compat.html#cheroot.test.test__compat.test_extract_bytes_invalid')], [], None)), ('test_garbage_in() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_garbage_in')], [], None)), ('test_gateway_start_response_called_twice() (in module cheroot.test.test_wsgi)', ([('', 'pkg/cheroot.test.test_wsgi.html#cheroot.test.test_wsgi.test_gateway_start_response_called_twice')], [], None)), ('test_gateway_write_needs_start_response_called_before() (in module cheroot.test.test_wsgi)', ([('', 'pkg/cheroot.test.test_wsgi.html#cheroot.test.test_wsgi.test_gateway_write_needs_start_response_called_before')], [], None)), ('test_high_number_of_file_descriptors() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_high_number_of_file_descriptors')], [], None)), ('test_HTTP11_persistent_connections() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_HTTP11_persistent_connections')], [], None)), ('test_HTTP11_pipelining() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_HTTP11_pipelining')], [], None)), ('test_HTTP11_Timeout() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_HTTP11_Timeout')], [], None)), ('test_HTTP11_Timeout_after_request() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_HTTP11_Timeout_after_request')], [], None)), ('test_http_connect_request() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_http_connect_request')], [], None)), ('test_http_over_https_error() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_http_over_https_error')], [], None)), ('test_https_over_http_error() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_https_over_http_error')], [], None)), ('test_invalid_selected_connection() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_invalid_selected_connection')], [], None)), ('test_kb_int_from_http_handler() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_kb_int_from_http_handler')], [], None)), ('test_keepalive() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_keepalive')], [], None)), ('test_keepalive_conn_management() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_keepalive_conn_management')], [], None)), ('test_large_request() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_large_request')], [], None)), ('test_malformed_header() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_malformed_header')], [], None)), ('test_malformed_http_method() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_malformed_http_method')], [], None)), ('test_malformed_request_line() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_malformed_request_line')], [], None)), ('test_no_content_length() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_no_content_length')], [], None)), ('test_No_CRLF() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_No_CRLF')], [], None)), ('test_No_Message_Body() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_No_Message_Body')], [], None)), ('test_normal_request() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_normal_request')], [], None)), ('test_ntou_escape() (in module cheroot.test.test__compat)', ([('', 'pkg/cheroot.test.test__compat.html#cheroot.test.test__compat.test_ntou_escape')], [], None)), ('test_openssl_adapter_with_false_key_password() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_openssl_adapter_with_false_key_password')], [], None)), ('test_overload_results_in_suitable_http_error() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_overload_results_in_suitable_http_error')], [], None)), ('test_parse_acceptable_uri() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_parse_acceptable_uri')], [], None)), ('test_parse_no_leading_slash_invalid() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_parse_no_leading_slash_invalid')], [], None)), ('test_parse_uri_absolute_uri() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_parse_uri_absolute_uri')], [], None)), ('test_parse_uri_asterisk_uri() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_parse_uri_asterisk_uri')], [], None)), ('test_parse_uri_fragment_uri() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_parse_uri_fragment_uri')], [], None)), ('test_parse_uri_invalid_uri() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_parse_uri_invalid_uri')], [], None)), ('test_parse_uri_unsafe_uri() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_parse_uri_unsafe_uri')], [], None)), ('test_parse_wsgi_bind_addr() (in module cheroot.test.test_cli)', ([('', 'pkg/cheroot.test.test_cli.html#cheroot.test.test_cli.test_parse_wsgi_bind_addr')], [], None)), ('test_peercreds_unix_sock() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_peercreds_unix_sock')], [], None)), ('test_peercreds_unix_sock_with_lookup() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_peercreds_unix_sock_with_lookup')], [], None)), ('test_plat_specific_errors() (in module cheroot.test.test_errors)', ([('', 'pkg/cheroot.test.test_errors.html#cheroot.test.test_errors.test_plat_specific_errors')], [], None)), ('test_prepare_makes_server_ready() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_prepare_makes_server_ready')], [], None)), ('test_query_string_request() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_query_string_request')], [], None)), ('test_readall_or_close() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_readall_or_close')], [], None)), ('test_remains_alive_post_unhandled_exception() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_remains_alive_post_unhandled_exception')], [], None)), ('test_request_line_split_issue_1220() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_request_line_split_issue_1220')], [], None)), ('test_reuse_port() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_reuse_port')], [], None)), ('test_send_header_before_closing() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.test_send_header_before_closing')], [], None)), ('test_server_interrupt() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_server_interrupt')], [], None)), ('test_serving_is_false_and_stop_returns_after_ctrlc() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_serving_is_false_and_stop_returns_after_ctrlc')], [], None)), ('test_ssl_adapters() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_ssl_adapters')], [], None)), ('test_ssl_adapters_with_private_key_password() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_ssl_adapters_with_private_key_password')], [], None)), ('test_ssl_env() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_ssl_env')], [], None)), ('test_stop_interrupts_serve() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_stop_interrupts_serve')], [], None)), ('test_streaming_10() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_streaming_10')], [], None)), ('test_streaming_11() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_streaming_11')], [], None)), ('test_threadpool_invalid_threadrange() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_threadpool_invalid_threadrange')], [], None)), ('test_threadpool_multistart_validation() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_threadpool_multistart_validation')], [], None)), ('test_threadpool_threadrange_set() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.test_threadpool_threadrange_set')], [], None)), ('test_tls_client_auth() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.test_tls_client_auth')], [], None)), ('test_unhandled_exception_in_request_handler() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.test_unhandled_exception_in_request_handler')], [], None)), ('testing_server() (in module cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.testing_server')], [('(in module cheroot.test.test_core)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.testing_server')])], None)), ('testing_server_close() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.testing_server_close')], [], None)), ('testing_server_with_defaults() (in module cheroot.test.test_core)', ([('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.testing_server_with_defaults')], [], None)), ('thread_and_native_server() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing.thread_and_native_server')], [], None)), ('thread_and_wsgi_server() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing.thread_and_wsgi_server')], [], None)), ('thread_exceptions() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.thread_exceptions')], [], None)), ('ThreadPool (class in cheroot.workers.threadpool)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.ThreadPool')], [], None)), ('time (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.time')], [], None)), ('timeout (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.timeout')], [], None)), ('tls_ca_certificate_pem_path() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.tls_ca_certificate_pem_path')], [], None)), ('tls_certificate() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.tls_certificate')], [], None)), ('tls_certificate_chain_pem_path() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.tls_certificate_chain_pem_path')], [], None)), ('tls_certificate_passwd_private_key_pem_path() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.tls_certificate_passwd_private_key_pem_path')], [], None)), ('tls_certificate_private_key_pem_path() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.tls_certificate_private_key_pem_path')], [], None)), ('tls_http_server() (in module cheroot.test.test_ssl)', ([('', 'pkg/cheroot.test.test_ssl.html#cheroot.test.test_ssl.tls_http_server')], [], None)), ('traceback (cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall attribute)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.traceback')], [], None))]), ('U', [('unix_abstract_sock() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.unix_abstract_sock')], [], None)), ('unix_file_sock() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.unix_file_sock')], [], None)), ('unix_sock_file() (in module cheroot.test.test_server)', ([('', 'pkg/cheroot.test.test_server.html#cheroot.test.test_server.unix_sock_file')], [], None)), ('UnixSocket (class in cheroot.cli)', ([('', 'pkg/cheroot.cli.html#cheroot.cli.UnixSocket')], [], None)), ('unregister() (cheroot.connections._ThreadsafeSelector method)', ([('', 'pkg/cheroot.connections.html#cheroot.connections._ThreadsafeSelector.unregister')], [], None)), ('upload() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.upload')], [], None)), ('url (cheroot.test.webtest.WebCase attribute)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase.url')], [], None))]), ('V', [('version (cheroot.server.HTTPServer attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPServer.version')], [('(cheroot.wsgi.Gateway_10 attribute)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway_10.version')]), ('(cheroot.wsgi.Gateway_u0 attribute)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway_u0.version')])], None))]), ('W', [('want_read() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.want_read')], [], None)), ('want_write() (cheroot.ssl.pyopenssl.SSLConnection method)', ([('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.want_write')], [], None)), ('wbufsize (cheroot.server.HTTPConnection attribute)', ([('', 'pkg/cheroot.server.html#cheroot.server.HTTPConnection.wbufsize')], [], None)), ('WebCase (class in cheroot.test.webtest)', ([('', 'pkg/cheroot.test.webtest.html#cheroot.test.webtest.WebCase')], [], None)), ('WorkerThread (class in cheroot.workers.threadpool)', ([('', 'pkg/cheroot.workers.threadpool.html#cheroot.workers.threadpool.WorkerThread')], [], None)), ('wrap() (cheroot.ssl.Adapter method)', ([('', 'pkg/cheroot.ssl.html#cheroot.ssl.Adapter.wrap')], [('(cheroot.ssl.builtin.BuiltinSSLAdapter method)', [('', 'pkg/cheroot.ssl.builtin.html#cheroot.ssl.builtin.BuiltinSSLAdapter.wrap')]), ('(cheroot.ssl.pyopenssl.pyOpenSSLAdapter method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.pyOpenSSLAdapter.wrap')])], None)), ('write() (cheroot.makefile.BufferedWriter method)', ([('', 'pkg/cheroot.makefile.html#cheroot.makefile.BufferedWriter.write')], [('(cheroot.makefile.StreamWriter method)', [('', 'pkg/cheroot.makefile.html#cheroot.makefile.StreamWriter.write')]), ('(cheroot.server.HTTPRequest method)', [('', 'pkg/cheroot.server.html#cheroot.server.HTTPRequest.write')]), ('(cheroot.ssl.pyopenssl.SSLConnection method)', [('', 'pkg/cheroot.ssl.pyopenssl.html#cheroot.ssl.pyopenssl.SSLConnection.write')]), ('(cheroot.wsgi.Gateway method)', [('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Gateway.write')])], None)), ('wrong_cl_buffered() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.wrong_cl_buffered')], [], None)), ('wrong_cl_unbuffered() (cheroot.test.test_conn.WSGICallables static method)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables.wrong_cl_unbuffered')], [], None)), ('wsgi_app() (in module cheroot.test.test_cli)', ([('', 'pkg/cheroot.test.test_cli.html#cheroot.test.test_cli.wsgi_app')], [], None)), ('wsgi_invoke() (in module cheroot.test.test_dispatch)', ([('', 'pkg/cheroot.test.test_dispatch.html#cheroot.test.test_dispatch.wsgi_invoke')], [], None)), ('wsgi_server() (in module cheroot.testing)', ([('', 'pkg/cheroot.testing.html#cheroot.testing.wsgi_server')], [], None)), ('wsgi_server_client() (in module cheroot.test.conftest)', ([('', 'pkg/cheroot.test.conftest.html#cheroot.test.conftest.wsgi_server_client')], [], None)), ('wsgi_server_thread() (in module cheroot.test.conftest)', ([('', 'pkg/cheroot.test.conftest.html#cheroot.test.conftest.wsgi_server_thread')], [], None)), ('wsgi_version (cheroot.wsgi.Server attribute)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.Server.wsgi_version')], [], None)), ('WSGICallables (class in cheroot.test.test_conn)', ([('', 'pkg/cheroot.test.test_conn.html#cheroot.test.test_conn.WSGICallables')], [('(class in cheroot.test.test_core)', [('', 'pkg/cheroot.test.test_core.html#cheroot.test.test_core.WSGICallables')])], None)), ('WSGIGateway (in module cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.WSGIGateway')], [], None)), ('WSGIGateway_10 (in module cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.WSGIGateway_10')], [], None)), ('WSGIGateway_u0 (in module cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.WSGIGateway_u0')], [], None)), ('WSGIPathInfoDispatcher (in module cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.WSGIPathInfoDispatcher')], [], None)), ('WSGIServer (in module cheroot.wsgi)', ([('', 'pkg/cheroot.wsgi.html#cheroot.wsgi.WSGIServer')], [], None))])], 'genindexcounts': [67, 19, 14, 103, 2, 8, 5, 30, 19, 8, 2, 4, 47, 11, 6, 42, 2, 50, 65, 101, 7, 3, 28], 'split_index': False, 'content_root': './', 'css_tag': .css_tag at 0x7f460911acf0>, 'js_tag': .js_tag at 0x7f460911b8a0>}, None) py-modindex [app] emitting event: 'html-page-context'('py-modindex', 'domainindex.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'py-modindex', 'current_page_name': 'py-modindex', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4608c207d0>, 'hasdoc': .hasdoc at 0x7f4608c20880>, 'toctree': . at 0x7f4608c20a90>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'indextitle': 'Python Module Index', 'content': [('c', [IndexEntry(name='cheroot', subtype=1, docname='pkg/cheroot', anchor='module-cheroot', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.__main__', subtype=2, docname='pkg/cheroot.__main__', anchor='module-cheroot.__main__', extra='', qualifier='', descr=''), IndexEntry(name='cheroot._compat', subtype=2, docname='pkg/cheroot._compat', anchor='module-cheroot._compat', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.cli', subtype=2, docname='pkg/cheroot.cli', anchor='module-cheroot.cli', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.connections', subtype=2, docname='pkg/cheroot.connections', anchor='module-cheroot.connections', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.errors', subtype=2, docname='pkg/cheroot.errors', anchor='module-cheroot.errors', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.makefile', subtype=2, docname='pkg/cheroot.makefile', anchor='module-cheroot.makefile', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.server', subtype=2, docname='pkg/cheroot.server', anchor='module-cheroot.server', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.ssl', subtype=2, docname='pkg/cheroot.ssl', anchor='module-cheroot.ssl', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.ssl.builtin', subtype=2, docname='pkg/cheroot.ssl.builtin', anchor='module-cheroot.ssl.builtin', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.ssl.pyopenssl', subtype=2, docname='pkg/cheroot.ssl.pyopenssl', anchor='module-cheroot.ssl.pyopenssl', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test', subtype=2, docname='pkg/cheroot.test', anchor='module-cheroot.test', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test._pytest_plugin', subtype=2, docname='pkg/cheroot.test._pytest_plugin', anchor='module-cheroot.test._pytest_plugin', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.conftest', subtype=2, docname='pkg/cheroot.test.conftest', anchor='module-cheroot.test.conftest', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.helper', subtype=2, docname='pkg/cheroot.test.helper', anchor='module-cheroot.test.helper', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test__compat', subtype=2, docname='pkg/cheroot.test.test__compat', anchor='module-cheroot.test.test__compat', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_cli', subtype=2, docname='pkg/cheroot.test.test_cli', anchor='module-cheroot.test.test_cli', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_conn', subtype=2, docname='pkg/cheroot.test.test_conn', anchor='module-cheroot.test.test_conn', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_core', subtype=2, docname='pkg/cheroot.test.test_core', anchor='module-cheroot.test.test_core', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_dispatch', subtype=2, docname='pkg/cheroot.test.test_dispatch', anchor='module-cheroot.test.test_dispatch', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_errors', subtype=2, docname='pkg/cheroot.test.test_errors', anchor='module-cheroot.test.test_errors', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_makefile', subtype=2, docname='pkg/cheroot.test.test_makefile', anchor='module-cheroot.test.test_makefile', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_server', subtype=2, docname='pkg/cheroot.test.test_server', anchor='module-cheroot.test.test_server', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_ssl', subtype=2, docname='pkg/cheroot.test.test_ssl', anchor='module-cheroot.test.test_ssl', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.test_wsgi', subtype=2, docname='pkg/cheroot.test.test_wsgi', anchor='module-cheroot.test.test_wsgi', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.test.webtest', subtype=2, docname='pkg/cheroot.test.webtest', anchor='module-cheroot.test.webtest', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.testing', subtype=2, docname='pkg/cheroot.testing', anchor='module-cheroot.testing', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.workers', subtype=2, docname='pkg/cheroot.workers', anchor='module-cheroot.workers', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.workers.threadpool', subtype=2, docname='pkg/cheroot.workers.threadpool', anchor='module-cheroot.workers.threadpool', extra='', qualifier='', descr=''), IndexEntry(name='cheroot.wsgi', subtype=2, docname='pkg/cheroot.wsgi', anchor='module-cheroot.wsgi', extra='', qualifier='', descr='')])], 'collapse_index': False, 'content_root': './', 'css_tag': .css_tag at 0x7f4608c209e0>, 'js_tag': .js_tag at 0x7f4608c20ca0>}, None) done [app] emitting event: 'html-collect-pages'() writing additional pages... search [app] emitting event: 'html-page-context'('search', 'search.html', {'embedded': False, 'project': 'Project name not set', 'release': '', 'version': '', 'last_updated': None, 'copyright': '', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'Project name not set documentation', 'shorttitle': 'Project name not set documentation', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.2.3', 'sphinx_version_tuple': (8, 2, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['alabaster.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': '', 'logo_alt': 'Logo of Project name not set', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': 'inherit', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_analytics_id': '', 'theme_badge_branch': 'master', 'theme_canonical_url': '', 'theme_codecov_button': 'false', 'theme_description': '', 'theme_description_font_style': 'normal', 'theme_donate_url': '', 'theme_extra_nav_links': '', 'theme_fixed_sidebar': 'false', 'theme_github_banner': 'false', 'theme_github_button': 'true', 'theme_github_count': 'true', 'theme_github_repo': '', 'theme_github_type': 'watch', 'theme_github_user': '', 'theme_gittip_user': '', 'theme_gratipay_user': '', 'theme_logo': '', 'theme_logo_name': 'false', 'theme_logo_text_align': 'left', 'theme_opencollective': '', 'theme_opencollective_button_color': 'white', 'theme_page_width': '940px', 'theme_relbar_border': '', 'theme_show_powered_by': 'true', 'theme_show_related': 'false', 'theme_show_relbar_bottom': '', 'theme_show_relbar_top': '', 'theme_show_relbars': 'false', 'theme_sidebar_collapse': 'true', 'theme_sidebar_includehidden': 'true', 'theme_sidebar_width': '220px', 'theme_tidelift_url': '', 'theme_touch_icon': '', 'theme_travis_button': 'false', 'theme_gray_1': '#444', 'theme_gray_2': '#EEE', 'theme_gray_3': '#AAA', 'theme_pink_1': '#FCC', 'theme_pink_2': '#FAA', 'theme_pink_3': '#D52C2C', 'theme_base_bg': '#fff', 'theme_base_text': '#000', 'theme_hr_border': '#B1B4B6', 'theme_body_bg': '', 'theme_body_text': '#3E4349', 'theme_body_text_align': 'left', 'theme_footer_text': '#888', 'theme_link': '#004B6B', 'theme_link_hover': '#6D4100', 'theme_sidebar_header': '', 'theme_sidebar_text': '#555', 'theme_sidebar_link': '', 'theme_sidebar_link_underscore': '#999', 'theme_sidebar_search_button': '#CCC', 'theme_sidebar_list': '#000', 'theme_sidebar_hr': '', 'theme_anchor': '#DDD', 'theme_anchor_hover_fg': '', 'theme_anchor_hover_bg': '#EAEAEA', 'theme_table_border': '#888', 'theme_shadow': '', 'theme_admonition_bg': '', 'theme_admonition_border': '#CCC', 'theme_note_bg': '', 'theme_note_border': '#CCC', 'theme_seealso_bg': '', 'theme_seealso_border': '#CCC', 'theme_danger_bg': '', 'theme_danger_border': '', 'theme_danger_shadow': '', 'theme_error_bg': '', 'theme_error_border': '', 'theme_error_shadow': '', 'theme_tip_bg': '', 'theme_tip_border': '#CCC', 'theme_hint_bg': '', 'theme_hint_border': '#CCC', 'theme_important_bg': '', 'theme_important_border': '#CCC', 'theme_caution_bg': '', 'theme_caution_border': '', 'theme_attention_bg': '', 'theme_attention_border': '', 'theme_warn_bg': '', 'theme_warn_border': '', 'theme_topic_bg': '', 'theme_code_highlight_bg': '', 'theme_highlight_bg': '#FAF3E8', 'theme_xref_border': '#fff', 'theme_xref_bg': '#FBFBFB', 'theme_admonition_xref_border': '#fafafa', 'theme_admonition_xref_bg': '', 'theme_footnote_bg': '#FDFDFD', 'theme_footnote_border': '', 'theme_pre_bg': '', 'theme_narrow_sidebar_bg': '#333', 'theme_narrow_sidebar_fg': '#FFF', 'theme_narrow_sidebar_link': '', 'theme_font_size': '17px', 'theme_caption_font_size': 'inherit', 'theme_viewcode_target_bg': '#ffd', 'theme_code_bg': '#ecf0f3', 'theme_code_text': '#222', 'theme_code_hover': '#EEE', 'theme_code_font_size': '0.9em', 'theme_code_font_family': "'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace", 'theme_font_family': 'Georgia, serif', 'theme_head_font_family': '', 'theme_caption_font_family': 'inherit', 'theme_code_highlight': '#FFC', 'pagename': 'search', 'current_page_name': 'search', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f4608c212d0>, 'hasdoc': .hasdoc at 0x7f4608c21850>, 'toctree': . at 0x7f4608c217a0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'content_root': './', 'css_tag': .css_tag at 0x7f4608c21a60>, 'js_tag': .js_tag at 0x7f4608c21b10>}, None) done dumping search index in English (code: en)... done dumping object inventory... done [app] emitting event: 'build-finished'(None,) build succeeded, 98 warnings. The HTML pages are in html. + rm -rf html/.doctrees html/.buildinfo + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.8mM9zi + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + '[' /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build + mkdir /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd cheroot-11.1.0 ++ ls /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir/cheroot-11.1.0-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=cheroot==11.1.0 + '[' -z cheroot==11.1.0 ']' + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir cheroot==11.1.0 Using pip 25.2 from /usr/lib/python3.14/site-packages/pip (python 3.14) Looking in links: /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir Processing /builddir/build/BUILD/python-cheroot-11.1.0-build/pyproject-wheeldir/cheroot-11.1.0-py3-none-any.whl Installing collected packages: cheroot Creating /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/bin changing mode of /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/bin/cheroot to 755 Successfully installed cheroot-11.1.0 + '[' -d /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/bin ']' + '[' -z sP ']' + shebang_flags=-kasP + /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kasP /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/bin/cheroot /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/bin/cheroot: updating + rm -rfv /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages ']' + site_dirs+=("/usr/lib/python3.14/site-packages") + '[' /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib64/python3.14/site-packages '!=' /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages ']' + '[' -d /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib64/python3.14/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost %dir /usr/lib/python3.14/site-packages/cheroot-11.1.0.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot-11.1.0.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT --record /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot-11.1.0.dist-info/RECORD --output /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-record + rm -fv /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot-11.1.0.dist-info/RECORD removed '/builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot-11.1.0.dist-info/RECORD' + rm -fv /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot-11.1.0.dist-info/REQUESTED removed '/builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot-11.1.0.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_FILES_ESCAPE=4.19 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-modules --buildroot /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT --sitelib /usr/lib/python3.14/site-packages --sitearch /usr/lib64/python3.14/site-packages --python-version 3.14 --pyproject-record /builddir/build/BUILD/python-cheroot-11.1.0-build/python-cheroot-11.1.0-1.fc44.x86_64-pyproject-record --prefix /usr cheroot + rm -rf /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/docs/ + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j4 Bytecompiling .py files below /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14 using python3.14 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-det --brp -j4 /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/testing.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/makefile.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/connections.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/errors.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/wsgi.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/_compat.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/__init__.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/__main__.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/workers/__pycache__/__init__.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_errors.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/cli.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_dispatch.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_errors.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_dispatch.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_wsgi.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/workers/__pycache__/threadpool.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_wsgi.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_core.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_core.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_ssl.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_ssl.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/webtest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_conn.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/__pycache__/server.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/webtest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_server.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_server.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_cli.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_cli.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test__compat.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test__compat.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_makefile.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_makefile.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/_pytest_plugin.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/__init__.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/conftest.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/helper.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/test/__pycache__/test_conn.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/ssl/__pycache__/__init__.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/ssl/__pycache__/pyopenssl.cpython-314.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/lib/python3.14/site-packages/cheroot/ssl/__pycache__/builtin.cpython-314.opt-1.pyc: rewriting with normalized contents Scanned 16 directories and 112 files, processed 41 inodes, 41 modified (22 replaced + 19 rewritten), 0 unsupported format, 0 errors + /usr/bin/linkdupes --brp /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr Scanned 15 directories and 112 files, considered 112 files, read 0 files, linked 1 files, 0 errors sum of sizes of linked files: 0 bytes Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.PFwxvJ + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd cheroot-11.1.0 + LANG=C.utf-8 + /usr/bin/python3 -m pytest --ignore=build -W ignore::DeprecationWarning -p no:unraisableexception ============================= test session starts ============================== platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 rootdir: /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0 configfile: pytest.ini testpaths: cheroot/test/ plugins: rerunfailures-15.0, mock-3.14.1, forked-1.6.0 collected 199 items cheroot/test/test__compat.py ......... [ 4%] cheroot/test/test_cli.py ............ [ 10%] cheroot/test/test_conn.py ..............................x....x... [ 30%] cheroot/test/test_core.py ...............x......... [ 42%] cheroot/test/test_dispatch.py . [ 43%] cheroot/test/test_errors.py .. [ 44%] cheroot/test/test_makefile.py .. [ 45%] cheroot/test/test_server.py ............................................ [ 67%] [ 67%] cheroot/test/test_ssl.py ............................................Exception ignored while calling deallocator : Traceback (most recent call last): File "/usr/lib64/python3.14/_pyio.py", line 415, in __del__ self.close() File "/usr/lib64/python3.14/_pyio.py", line 1310, in close ..Exception ignored while calling deallocator : Traceback (most recent call last): File "/usr/lib64/python3.14/_pyio.py", line 415, in __del__ . [ 90%] ............. [ 97%] cheroot/test/test_wsgi.py s.. [ 98%] cheroot/test/webtest.py .. [100%] ============================= slowest 10 durations ============================= 4.01s call cheroot/test/test_conn.py::test_HTTP11_Timeout_after_request 3.72s call cheroot/test/test_conn.py::test_keepalive_conn_management 2.00s call cheroot/test/test_conn.py::test_HTTP11_Timeout[False] 2.00s call cheroot/test/test_conn.py::test_HTTP11_Timeout[True] 1.01s call cheroot/test/test_conn.py::test_invalid_selected_connection 0.62s call cheroot/test/test_conn.py::test_unhandled_exception_in_request_handler 0.61s call cheroot/test/test_conn.py::test_remains_alive_post_unhandled_exception 0.60s call cheroot/test/test_conn.py::test_598 0.60s call cheroot/test/test_conn.py::test_broken_connection_during_http_communication_fallback 0.60s call cheroot/test/test_conn.py::test_kb_int_from_http_handler =========================== short test summary info ============================ SKIPPED [1] cheroot/test/test_wsgi.py:39: unconditional skip XFAIL cheroot/test/test_conn.py::test_Chunked_Encoding - Headers from earlier request leak into the request line for a subsequent request, resulting in 400 instead of 413. See cherrypy/cheroot#69 for details. XFAIL cheroot/test/test_conn.py::test_598 - Sometimes this test fails due to low timeout. Ref: https://github.com/cherrypy/cherrypy/issues/598 XFAIL cheroot/test/test_core.py::test_large_request - https://github.com/cherrypy/cheroot/issues/106 ============= 195 passed, 1 skipped, 3 xfailed in 89.18s (0:01:29) ============= + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-cheroot-11.1.0-1.fc44.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.dH8fxl + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd cheroot-11.1.0 + DOCDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/doc/python3-cheroot + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/doc/python3-cheroot + cp -pr /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/README.rst /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/doc/python3-cheroot + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.71clR3 + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd cheroot-11.1.0 + LICENSEDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/licenses/python3-cheroot + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/licenses/python3-cheroot + cp -pr /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/LICENSE.md /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/licenses/python3-cheroot + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-cheroot = 11.1.0-1.fc44 python3-cheroot = 11.1.0-1.fc44 python3.14-cheroot = 11.1.0-1.fc44 python3.14dist(cheroot) = 11.1 python3dist(cheroot) = 11.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/python3 python(abi) = 3.14 python3.14dist(jaraco-functools) python3.14dist(more-itertools) >= 2.6 Obsoletes: python-cheroot < 11.1.0-1.fc44 Processing files: python-cheroot-doc-11.1.0-1.fc44.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.a8lTIX + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd cheroot-11.1.0 + DOCDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/doc/python-cheroot-doc + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/doc/python-cheroot-doc + cp -pr /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/html /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/doc/python-cheroot-doc + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.OJ1RQS + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.0-build + cd cheroot-11.1.0 + LICENSEDIR=/builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/licenses/python-cheroot-doc + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/licenses/python-cheroot-doc + cp -pr /builddir/build/BUILD/python-cheroot-11.1.0-build/cheroot-11.1.0/LICENSE.md /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT/usr/share/licenses/python-cheroot-doc + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-cheroot-doc = 11.1.0-1.fc44 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILD/python-cheroot-11.1.0-build/BUILDROOT Wrote: /builddir/build/SRPMS/python-cheroot-11.1.0-1.fc44.src.rpm Wrote: /builddir/build/RPMS/python3-cheroot-11.1.0-1.fc44.noarch.rpm Wrote: /builddir/build/RPMS/python-cheroot-doc-11.1.0-1.fc44.noarch.rpm Finish: rpmbuild python-cheroot-11.1.0-1.fc44.src.rpm Finish: build phase for python-cheroot-11.1.0-1.fc44.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1762193922.659918/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names INFO: Done(/var/lib/copr-rpmbuild/results/python-cheroot-11.1.0-1.fc44.src.rpm) Config(child) 1 minutes 49 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running RPMResults tool Package info: { "packages": [ { "name": "python3-cheroot", "epoch": null, "version": "11.1.0", "release": "1.fc44", "arch": "noarch" }, { "name": "python-cheroot", "epoch": null, "version": "11.1.0", "release": "1.fc44", "arch": "src" }, { "name": "python-cheroot-doc", "epoch": null, "version": "11.1.0", "release": "1.fc44", "arch": "noarch" } ] } RPMResults finished