Warning: Permanently added '2620:52:3:1:dead:beef:cafe:c149' (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/9769994-fedora-42-x86_64 --chroot fedora-42-x86_64 Version: 1.6 PID: 2631 Logging PID: 2633 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'build_id': 9769994, 'buildroot_pkgs': [], 'chroot': 'fedora-42-x86_64', 'enable_net': False, 'fedora_review': False, 'git_hash': 'bc6b04436c48f7c22b3cc07b38bf51620a7ad700', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/torsava/automatic-obsoletes/python-cheroot', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'python-cheroot', 'package_version': '11.1.1-2', 'project_dirname': 'automatic-obsoletes', 'project_name': 'automatic-obsoletes', 'project_owner': 'torsava', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/torsava/automatic-obsoletes/fedora-42-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None}], 'sandbox': 'torsava/automatic-obsoletes--https://src.fedoraproject.org/user/radez', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'storage': None, 'submitter': 'https://src.fedoraproject.org/user/radez', 'tags': [], 'task_id': '9769994-fedora-42-x86_64', 'timeout': 18000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/torsava/automatic-obsoletes/python-cheroot /var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/python-cheroot --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/torsava/automatic-obsoletes/python-cheroot', '/var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/python-cheroot', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/python-cheroot'... Running: git checkout bc6b04436c48f7c22b3cc07b38bf51620a7ad700 -- cmd: ['git', 'checkout', 'bc6b04436c48f7c22b3cc07b38bf51620a7ad700', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/python-cheroot rc: 0 stdout: stderr: Note: switching to 'bc6b04436c48f7c22b3cc07b38bf51620a7ad700'. 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 bc6b044 automatic import of python-cheroot Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/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.1.tar.gz INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -o cheroot-11.1.1.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/torsava/automatic-obsoletes/python-cheroot/cheroot-11.1.1.tar.gz/md5/48109dacdb21533093a4c2b21dd1c42e/cheroot-11.1.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 180k 100 180k 0 0 2215k 0 --:--:-- --:--:-- --:--:-- 2232k INFO: Reading stdout from command: md5sum cheroot-11.1.1.tar.gz tail: /var/lib/copr-rpmbuild/main.log: file truncated Running (timeout=18000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/python-cheroot/python-cheroot.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/python-cheroot --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1762357903.141268 -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-6hiqtmer/python-cheroot/python-cheroot.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-6hiqtmer/python-cheroot --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1762357903.141268 -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-6hiqtmer/python-cheroot/python-cheroot.spec) Config(fedora-42-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-42-x86_64-bootstrap-1762357903.141268/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:42 INFO: Pulling image: registry.fedoraproject.org/fedora:42 INFO: Tagging container image as mock-bootstrap-17e53f53-0e1a-4f26-836e-e5ee0715b7d9 INFO: Checking that babdeec1f735bad5218292fc3ceeb76e2a1a88e627127d09c2869ad21750b0e3 image matches host's architecture INFO: Copy content of container babdeec1f735bad5218292fc3ceeb76e2a1a88e627127d09c2869ad21750b0e3 to /var/lib/mock/fedora-42-x86_64-bootstrap-1762357903.141268/root INFO: mounting babdeec1f735bad5218292fc3ceeb76e2a1a88e627127d09c2869ad21750b0e3 with podman image mount INFO: image babdeec1f735bad5218292fc3ceeb76e2a1a88e627127d09c2869ad21750b0e3 as /var/lib/containers/storage/overlay/8ac2f73aa65ec5a75a1f385ba251363239b0840a3add16fa4bda3c30c94d7ce1/merged INFO: umounting image babdeec1f735bad5218292fc3ceeb76e2a1a88e627127d09c2869ad21750b0e3 (/var/lib/containers/storage/overlay/8ac2f73aa65ec5a75a1f385ba251363239b0840a3add16fa4bda3c30c94d7ce1/merged) with podman image umount INFO: Removing image mock-bootstrap-17e53f53-0e1a-4f26-836e-e5ee0715b7d9 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-42-x86_64-1762357903.141268/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-4.20.1-1.fc42.x86_64 rpm-sequoia-1.7.0-5.fc42.x86_64 dnf5-5.2.17.0-1.fc42.x86_64 dnf5-plugins-5.2.17.0-1.fc42.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: Copr repository 100% | 15.3 MiB/s | 4.0 MiB | 00m00s updates 100% | 7.3 MiB/s | 10.6 MiB | 00m01s fedora 100% | 15.3 MiB/s | 35.4 MiB | 00m02s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 5.2.37-1.fc42 fedora 8.2 MiB bzip2 x86_64 1.0.8-20.fc42 fedora 99.3 KiB coreutils x86_64 9.6-6.fc42 updates 5.4 MiB cpio x86_64 2.15-4.fc42 fedora 1.1 MiB diffutils x86_64 3.12-1.fc42 updates 1.6 MiB fedora-release-common noarch 42-30 updates 20.2 KiB findutils x86_64 1:4.10.0-5.fc42 fedora 1.9 MiB gawk x86_64 5.3.1-1.fc42 fedora 1.7 MiB glibc-minimal-langpack x86_64 2.41-11.fc42 updates 0.0 B grep x86_64 3.11-10.fc42 fedora 1.0 MiB gzip x86_64 1.13-3.fc42 fedora 392.9 KiB info x86_64 7.2-3.fc42 fedora 357.9 KiB patch x86_64 2.8-1.fc42 updates 222.8 KiB redhat-rpm-config noarch 342-4.fc42 updates 185.5 KiB rpm-build x86_64 5.99.90-6.fc42 copr_base 281.6 KiB sed x86_64 4.9-4.fc42 fedora 857.3 KiB shadow-utils x86_64 2:4.17.4-1.fc42 fedora 4.0 MiB tar x86_64 2:1.35-5.fc42 fedora 3.0 MiB unzip x86_64 6.0-66.fc42 fedora 390.3 KiB util-linux x86_64 2.41.2-7.fc42 copr_base 3.5 MiB which x86_64 2.23-2.fc42 updates 83.5 KiB xz x86_64 1:5.8.1-2.fc42 updates 1.3 MiB Installing dependencies: add-determinism x86_64 0.6.0-1.fc42 fedora 2.5 MiB alternatives x86_64 1.33-1.fc42 updates 62.2 KiB ansible-srpm-macros noarch 1-17.1.fc42 fedora 35.7 KiB audit-libs x86_64 4.1.2-2.fc42 copr_base 378.8 KiB basesystem noarch 11-22.fc42 fedora 0.0 B binutils x86_64 2.44-6.fc42 updates 25.8 MiB build-reproducibility-srpm-macros noarch 0.6.0-1.fc42 fedora 735.0 B bzip2-libs x86_64 1.0.8-20.fc42 fedora 84.6 KiB ca-certificates noarch 2025.2.80_v9.0.304-1.0.fc42 updates 2.7 MiB coreutils-common x86_64 9.6-6.fc42 updates 11.1 MiB crypto-policies noarch 20250707-1.gitad370a8.fc42 updates 142.9 KiB curl x86_64 8.11.1-6.fc42 updates 450.6 KiB cyrus-sasl-lib x86_64 2.1.28-30.fc42 fedora 2.3 MiB debugedit x86_64 5.1-7.fc42 updates 192.7 KiB dwz x86_64 0.16-1.fc42 updates 287.1 KiB ed x86_64 1.21-2.fc42 fedora 146.5 KiB efi-srpm-macros noarch 6-3.fc42 updates 40.1 KiB elfutils x86_64 0.194-1.fc42 updates 2.9 MiB elfutils-debuginfod-client x86_64 0.194-1.fc42 updates 83.9 KiB elfutils-default-yama-scope noarch 0.194-1.fc42 updates 1.8 KiB elfutils-libelf x86_64 0.194-1.fc42 updates 1.1 MiB elfutils-libs x86_64 0.194-1.fc42 updates 687.4 KiB fedora-gpg-keys noarch 42-1 fedora 128.2 KiB fedora-release noarch 42-30 updates 0.0 B fedora-release-identity-basic noarch 42-30 updates 646.0 B fedora-repos noarch 42-1 fedora 4.9 KiB file x86_64 5.46-8.fc42 copr_base 100.2 KiB file-libs x86_64 5.46-8.fc42 copr_base 11.9 MiB filesystem x86_64 3.18-47.fc42 updates 112.0 B filesystem-srpm-macros noarch 3.18-47.fc42 updates 38.2 KiB fonts-srpm-macros noarch 1:2.0.5-22.fc42 updates 55.8 KiB forge-srpm-macros noarch 0.4.0-2.fc42 fedora 38.9 KiB fpc-srpm-macros noarch 1.3-14.fc42 fedora 144.0 B gdb-minimal x86_64 16.3-1.fc42 updates 13.2 MiB gdbm-libs x86_64 1:1.23-9.fc42 fedora 129.9 KiB ghc-srpm-macros noarch 1.9.2-2.fc42 fedora 779.0 B glibc x86_64 2.41-11.fc42 updates 6.6 MiB glibc-common x86_64 2.41-11.fc42 updates 1.0 MiB glibc-gconv-extra x86_64 2.41-11.fc42 updates 7.2 MiB gmp x86_64 1:6.3.0-4.fc42 fedora 811.3 KiB gnat-srpm-macros noarch 6-7.fc42 fedora 1.0 KiB gnulib-l10n noarch 20241231-1.fc42 updates 655.0 KiB gnupg2 x86_64 2.4.7-2.fc42 fedora 9.8 MiB gnutls x86_64 3.8.10-1.fc42 updates 3.8 MiB go-srpm-macros noarch 3.8.0-1.fc42 updates 61.9 KiB ima-evm-utils-libs x86_64 1.6.2-4.fc42 fedora 60.7 KiB jansson x86_64 2.14-2.fc42 fedora 93.1 KiB json-c x86_64 0.18-2.fc42 fedora 86.7 KiB kernel-srpm-macros noarch 1.0-25.fc42 fedora 1.9 KiB keyutils-libs x86_64 1.6.3-5.fc42 fedora 58.3 KiB krb5-libs x86_64 1.21.3-6.fc42 updates 2.3 MiB libacl x86_64 2.3.2-3.fc42 fedora 38.3 KiB libarchive x86_64 3.8.1-1.fc42 updates 955.2 KiB libassuan x86_64 2.5.7-3.fc42 fedora 167.8 KiB libattr x86_64 2.5.2-5.fc42 fedora 27.1 KiB libblkid x86_64 2.41.2-7.fc42 copr_base 262.4 KiB libbrotli x86_64 1.1.0-10.fc42 copr_base 833.3 KiB libcap x86_64 2.73-2.fc42 fedora 207.1 KiB libcap-ng x86_64 0.8.5-8.fc42 copr_base 68.9 KiB libcom_err x86_64 1.47.2-3.fc42 fedora 67.1 KiB libcurl x86_64 8.11.1-6.fc42 updates 834.1 KiB libeconf x86_64 0.7.6-2.fc42 updates 64.6 KiB libevent x86_64 2.1.12-15.fc42 fedora 903.1 KiB libfdisk x86_64 2.41.2-7.fc42 copr_base 380.4 KiB libffi x86_64 3.4.6-5.fc42 fedora 82.3 KiB libfsverity x86_64 1.6-2.fc42 fedora 32.5 KiB libgcc x86_64 15.2.1-3.fc42 updates 266.6 KiB libgcrypt x86_64 1.11.0-5.fc42 fedora 1.6 MiB libgomp x86_64 15.2.1-3.fc42 updates 541.6 KiB libgpg-error x86_64 1.51-2.fc42 fedora 894.1 KiB libidn2 x86_64 2.3.8-1.fc42 fedora 556.5 KiB libksba x86_64 1.6.7-3.fc42 fedora 402.5 KiB liblastlog2 x86_64 2.41.2-7.fc42 copr_base 33.9 KiB libmount x86_64 2.41.2-7.fc42 copr_base 372.7 KiB libnghttp2 x86_64 1.64.0-3.fc42 fedora 170.4 KiB libpkgconf x86_64 2.3.0-2.fc42 fedora 78.1 KiB libpsl x86_64 0.21.5-5.fc42 fedora 76.4 KiB libselinux x86_64 3.8-3.fc42 copr_base 193.1 KiB libsemanage x86_64 3.8.1-3.fc42 copr_base 304.4 KiB libsepol x86_64 3.8-1.fc42 fedora 826.0 KiB libsmartcols x86_64 2.41.2-7.fc42 copr_base 180.5 KiB libssh x86_64 0.11.3-1.fc42 updates 567.1 KiB libssh-config noarch 0.11.3-1.fc42 updates 277.0 B libstdc++ x86_64 15.2.1-3.fc42 updates 2.8 MiB libtasn1 x86_64 4.20.0-1.fc42 fedora 176.3 KiB libtool-ltdl x86_64 2.5.4-4.fc42 fedora 70.1 KiB libunistring x86_64 1.1-9.fc42 fedora 1.7 MiB libusb1 x86_64 1.0.29-4.fc42 updates 171.3 KiB libuuid x86_64 2.41.2-7.fc42 copr_base 37.3 KiB libverto x86_64 0.3.2-10.fc42 fedora 25.4 KiB libxcrypt x86_64 4.4.38-7.fc42 updates 284.5 KiB libxml2 x86_64 2.12.10-5.fc42 copr_base 1.7 MiB libzstd x86_64 1.5.7-1.fc42 fedora 807.8 KiB lua-libs x86_64 5.4.8-1.fc42 updates 280.8 KiB lua-srpm-macros noarch 1-15.fc42 fedora 1.3 KiB lz4-libs x86_64 1.10.0-2.fc42 fedora 157.4 KiB mpfr x86_64 4.2.2-1.fc42 fedora 828.8 KiB ncurses-base noarch 6.5-5.20250125.fc42 fedora 326.8 KiB ncurses-libs x86_64 6.5-5.20250125.fc42 fedora 946.3 KiB nettle x86_64 3.10.1-1.fc42 fedora 790.5 KiB npth x86_64 1.8-2.fc42 fedora 49.6 KiB ocaml-srpm-macros noarch 10-4.fc42 fedora 1.9 KiB openblas-srpm-macros noarch 2-19.fc42 fedora 112.0 B openldap x86_64 2.6.10-1.fc42 updates 655.8 KiB openssl-libs x86_64 1:3.2.6-2.fc42 updates 7.8 MiB p11-kit x86_64 0.25.8-1.fc42 updates 2.3 MiB p11-kit-trust x86_64 0.25.8-1.fc42 updates 446.5 KiB package-notes-srpm-macros noarch 0.5-13.fc42 fedora 1.6 KiB pam-libs x86_64 1.7.0-6.fc42 updates 126.7 KiB pcre2 x86_64 10.46-1.fc42 updates 697.7 KiB pcre2-syntax noarch 10.46-1.fc42 updates 275.3 KiB perl-srpm-macros noarch 1-57.fc42 fedora 861.0 B pkgconf x86_64 2.3.0-2.fc42 fedora 88.5 KiB pkgconf-m4 noarch 2.3.0-2.fc42 fedora 14.4 KiB pkgconf-pkg-config x86_64 2.3.0-2.fc42 fedora 989.0 B popt x86_64 1.19-8.fc42 fedora 132.8 KiB publicsuffix-list-dafsa noarch 20250616-1.fc42 updates 69.1 KiB pyproject-srpm-macros noarch 1.18.4-1.fc42 updates 1.9 KiB python-srpm-macros noarch 3.13-5.fc42 updates 51.0 KiB qt5-srpm-macros noarch 5.15.17-1.fc42 updates 500.0 B qt6-srpm-macros noarch 6.9.3-1.fc42 updates 464.0 B readline x86_64 8.2-13.fc42 fedora 485.0 KiB rpm x86_64 5.99.90-6.fc42 copr_base 3.1 MiB rpm-build-libs x86_64 5.99.90-6.fc42 copr_base 264.4 KiB rpm-libs x86_64 5.99.90-6.fc42 copr_base 929.8 KiB rpm-sequoia x86_64 1.7.0-5.fc42 fedora 2.4 MiB rpm-sign-libs x86_64 5.99.90-6.fc42 copr_base 39.7 KiB rust-srpm-macros noarch 26.4-1.fc42 copr_base 4.8 KiB setup noarch 2.15.0-13.fc42 fedora 720.9 KiB sqlite-libs x86_64 3.47.2-5.fc42 updates 1.5 MiB systemd-libs x86_64 257.10-1.fc42 updates 2.2 MiB systemd-standalone-sysusers x86_64 257.10-1.fc42 updates 277.3 KiB tpm2-tss x86_64 4.1.3-6.fc42 fedora 1.6 MiB tree-sitter-srpm-macros noarch 0.1.0-8.fc42 fedora 6.5 KiB util-linux-core x86_64 2.41.2-7.fc42 copr_base 1.5 MiB xxhash-libs x86_64 0.8.3-2.fc42 fedora 90.2 KiB xz-libs x86_64 1:5.8.1-2.fc42 updates 217.8 KiB zig-srpm-macros noarch 1-4.fc42 fedora 1.1 KiB zip x86_64 3.0-43.fc42 fedora 698.5 KiB zlib-ng-compat x86_64 2.2.5-2.fc42 updates 137.6 KiB zstd x86_64 1.5.7-1.fc42 fedora 1.7 MiB Installing groups: Buildsystem building group Transaction Summary: Installing: 163 packages Total size of inbound packages is 59 MiB. Need to download 59 MiB. After this operation, 198 MiB extra will be used (install 198 MiB, remove 0 B). [ 1/163] bzip2-0:1.0.8-20.fc42.x86_64 100% | 261.6 KiB/s | 52.1 KiB | 00m00s [ 2/163] cpio-0:2.15-4.fc42.x86_64 100% | 923.5 KiB/s | 294.6 KiB | 00m00s [ 3/163] findutils-1:4.10.0-5.fc42.x86 100% | 3.0 MiB/s | 551.5 KiB | 00m00s [ 4/163] grep-0:3.11-10.fc42.x86_64 100% | 4.0 MiB/s | 300.1 KiB | 00m00s [ 5/163] gzip-0:1.13-3.fc42.x86_64 100% | 4.5 MiB/s | 170.4 KiB | 00m00s [ 6/163] info-0:7.2-3.fc42.x86_64 100% | 4.7 MiB/s | 183.8 KiB | 00m00s [ 7/163] bash-0:5.2.37-1.fc42.x86_64 100% | 3.9 MiB/s | 1.8 MiB | 00m00s [ 8/163] sed-0:4.9-4.fc42.x86_64 100% | 5.5 MiB/s | 317.3 KiB | 00m00s [ 9/163] unzip-0:6.0-66.fc42.x86_64 100% | 4.9 MiB/s | 184.6 KiB | 00m00s [ 10/163] tar-2:1.35-5.fc42.x86_64 100% | 14.3 MiB/s | 862.5 KiB | 00m00s [ 11/163] shadow-utils-2:4.17.4-1.fc42. 100% | 10.5 MiB/s | 1.3 MiB | 00m00s [ 12/163] fedora-release-common-0:42-30 100% | 154.0 KiB/s | 24.5 KiB | 00m00s [ 13/163] gawk-0:5.3.1-1.fc42.x86_64 100% | 15.2 MiB/s | 1.1 MiB | 00m00s [ 14/163] diffutils-0:3.12-1.fc42.x86_6 100% | 1.3 MiB/s | 392.6 KiB | 00m00s [ 15/163] patch-0:2.8-1.fc42.x86_64 100% | 2.7 MiB/s | 113.5 KiB | 00m00s [ 16/163] coreutils-0:9.6-6.fc42.x86_64 100% | 3.0 MiB/s | 1.1 MiB | 00m00s [ 17/163] glibc-minimal-langpack-0:2.41 100% | 858.7 KiB/s | 98.7 KiB | 00m00s [ 18/163] redhat-rpm-config-0:342-4.fc4 100% | 2.0 MiB/s | 81.1 KiB | 00m00s [ 19/163] which-0:2.23-2.fc42.x86_64 100% | 1.2 MiB/s | 41.7 KiB | 00m00s [ 20/163] util-linux-0:2.41.2-7.fc42.x8 100% | 9.5 MiB/s | 1.1 MiB | 00m00s [ 21/163] xz-1:5.8.1-2.fc42.x86_64 100% | 6.2 MiB/s | 572.6 KiB | 00m00s [ 22/163] ncurses-libs-0:6.5-5.20250125 100% | 9.9 MiB/s | 335.0 KiB | 00m00s [ 23/163] bzip2-libs-0:1.0.8-20.fc42.x8 100% | 1.2 MiB/s | 43.6 KiB | 00m00s [ 24/163] libacl-0:2.3.2-3.fc42.x86_64 100% | 766.9 KiB/s | 23.0 KiB | 00m00s [ 25/163] setup-0:2.15.0-13.fc42.noarch 100% | 4.2 MiB/s | 155.8 KiB | 00m00s [ 26/163] gmp-1:6.3.0-4.fc42.x86_64 100% | 8.9 MiB/s | 317.7 KiB | 00m00s [ 27/163] rpm-build-0:5.99.90-6.fc42.x8 100% | 504.4 KiB/s | 125.6 KiB | 00m00s [ 28/163] libattr-0:2.5.2-5.fc42.x86_64 100% | 589.1 KiB/s | 17.1 KiB | 00m00s [ 29/163] libcap-0:2.73-2.fc42.x86_64 100% | 2.6 MiB/s | 84.3 KiB | 00m00s [ 30/163] coreutils-common-0:9.6-6.fc42 100% | 16.4 MiB/s | 2.1 MiB | 00m00s [ 31/163] fedora-repos-0:42-1.noarch 100% | 200.6 KiB/s | 9.2 KiB | 00m00s [ 32/163] readline-0:8.2-13.fc42.x86_64 100% | 6.6 MiB/s | 215.2 KiB | 00m00s [ 33/163] mpfr-0:4.2.2-1.fc42.x86_64 100% | 4.6 MiB/s | 345.3 KiB | 00m00s [ 34/163] glibc-common-0:2.41-11.fc42.x 100% | 9.9 MiB/s | 385.6 KiB | 00m00s [ 35/163] ansible-srpm-macros-0:1-17.1. 100% | 597.5 KiB/s | 20.3 KiB | 00m00s [ 36/163] build-reproducibility-srpm-ma 100% | 354.0 KiB/s | 11.7 KiB | 00m00s [ 37/163] ed-0:1.21-2.fc42.x86_64 100% | 2.0 MiB/s | 82.0 KiB | 00m00s [ 38/163] forge-srpm-macros-0:0.4.0-2.f 100% | 684.5 KiB/s | 19.9 KiB | 00m00s [ 39/163] fpc-srpm-macros-0:1.3-14.fc42 100% | 286.4 KiB/s | 8.0 KiB | 00m00s [ 40/163] ghc-srpm-macros-0:1.9.2-2.fc4 100% | 315.7 KiB/s | 9.2 KiB | 00m00s [ 41/163] gnat-srpm-macros-0:6-7.fc42.n 100% | 296.9 KiB/s | 8.6 KiB | 00m00s [ 42/163] kernel-srpm-macros-0:1.0-25.f 100% | 352.5 KiB/s | 9.9 KiB | 00m00s [ 43/163] lua-srpm-macros-0:1-15.fc42.n 100% | 307.5 KiB/s | 8.9 KiB | 00m00s [ 44/163] ocaml-srpm-macros-0:10-4.fc42 100% | 317.4 KiB/s | 9.2 KiB | 00m00s [ 45/163] openblas-srpm-macros-0:2-19.f 100% | 267.8 KiB/s | 7.8 KiB | 00m00s [ 46/163] package-notes-srpm-macros-0:0 100% | 298.7 KiB/s | 9.3 KiB | 00m00s [ 47/163] perl-srpm-macros-0:1-57.fc42. 100% | 257.8 KiB/s | 8.5 KiB | 00m00s [ 48/163] tree-sitter-srpm-macros-0:0.1 100% | 340.3 KiB/s | 11.2 KiB | 00m00s [ 49/163] zig-srpm-macros-0:1-4.fc42.no 100% | 249.8 KiB/s | 8.2 KiB | 00m00s [ 50/163] popt-0:1.19-8.fc42.x86_64 100% | 2.1 MiB/s | 65.9 KiB | 00m00s [ 51/163] rpm-0:5.99.90-6.fc42.x86_64 100% | 11.9 MiB/s | 526.0 KiB | 00m00s [ 52/163] zip-0:3.0-43.fc42.x86_64 100% | 5.6 MiB/s | 263.5 KiB | 00m00s [ 53/163] libblkid-0:2.41.2-7.fc42.x86_ 100% | 7.1 MiB/s | 123.7 KiB | 00m00s [ 54/163] libfdisk-0:2.41.2-7.fc42.x86_ 100% | 8.8 MiB/s | 162.2 KiB | 00m00s [ 55/163] liblastlog2-0:2.41.2-7.fc42.x 100% | 2.6 MiB/s | 23.7 KiB | 00m00s [ 56/163] libmount-0:2.41.2-7.fc42.x86_ 100% | 8.4 MiB/s | 163.3 KiB | 00m00s [ 57/163] libsmartcols-0:2.41.2-7.fc42. 100% | 4.9 MiB/s | 84.6 KiB | 00m00s [ 58/163] libuuid-0:2.41.2-7.fc42.x86_6 100% | 2.9 MiB/s | 26.8 KiB | 00m00s [ 59/163] zstd-0:1.5.7-1.fc42.x86_64 100% | 6.6 MiB/s | 485.9 KiB | 00m00s [ 60/163] util-linux-core-0:2.41.2-7.fc 100% | 20.1 MiB/s | 535.5 KiB | 00m00s [ 61/163] xz-libs-1:5.8.1-2.fc42.x86_64 100% | 2.3 MiB/s | 113.0 KiB | 00m00s [ 62/163] ncurses-base-0:6.5-5.20250125 100% | 2.0 MiB/s | 88.1 KiB | 00m00s [ 63/163] gnulib-l10n-0:20241231-1.fc42 100% | 2.5 MiB/s | 150.1 KiB | 00m00s [ 64/163] fedora-gpg-keys-0:42-1.noarch 100% | 3.9 MiB/s | 135.6 KiB | 00m00s [ 65/163] add-determinism-0:0.6.0-1.fc4 100% | 18.7 MiB/s | 918.3 KiB | 00m00s [ 66/163] lz4-libs-0:1.10.0-2.fc42.x86_ 100% | 1.4 MiB/s | 78.1 KiB | 00m00s [ 67/163] glibc-0:2.41-11.fc42.x86_64 100% | 31.2 MiB/s | 2.2 MiB | 00m00s [ 68/163] basesystem-0:11-22.fc42.noarc 100% | 251.4 KiB/s | 7.3 KiB | 00m00s [ 69/163] rpm-libs-0:5.99.90-6.fc42.x86 100% | 18.6 MiB/s | 400.0 KiB | 00m00s [ 70/163] libzstd-0:1.5.7-1.fc42.x86_64 100% | 9.3 MiB/s | 314.8 KiB | 00m00s [ 71/163] rpm-build-libs-0:5.99.90-6.fc 100% | 6.9 MiB/s | 127.3 KiB | 00m00s [ 72/163] rpm-sign-libs-0:5.99.90-6.fc4 100% | 3.2 MiB/s | 29.1 KiB | 00m00s [ 73/163] glibc-gconv-extra-0:2.41-11.f 100% | 9.5 MiB/s | 1.6 MiB | 00m00s [ 74/163] rpm-sequoia-0:1.7.0-5.fc42.x8 100% | 8.3 MiB/s | 911.1 KiB | 00m00s [ 75/163] gnupg2-0:2.4.7-2.fc42.x86_64 100% | 35.6 MiB/s | 2.8 MiB | 00m00s [ 76/163] ima-evm-utils-libs-0:1.6.2-4. 100% | 1.0 MiB/s | 29.6 KiB | 00m00s [ 77/163] libfsverity-0:1.6-2.fc42.x86_ 100% | 647.7 KiB/s | 18.8 KiB | 00m00s [ 78/163] libassuan-0:2.5.7-3.fc42.x86_ 100% | 2.1 MiB/s | 67.6 KiB | 00m00s [ 79/163] libgpg-error-0:1.51-2.fc42.x8 100% | 5.3 MiB/s | 237.2 KiB | 00m00s [ 80/163] libgcrypt-0:1.11.0-5.fc42.x86 100% | 11.8 MiB/s | 593.3 KiB | 00m00s [ 81/163] libksba-0:1.6.7-3.fc42.x86_64 100% | 5.1 MiB/s | 162.0 KiB | 00m00s [ 82/163] npth-0:1.8-2.fc42.x86_64 100% | 891.2 KiB/s | 25.8 KiB | 00m00s [ 83/163] tpm2-tss-0:4.1.3-6.fc42.x86_6 100% | 11.5 MiB/s | 425.4 KiB | 00m00s [ 84/163] json-c-0:0.18-2.fc42.x86_64 100% | 1.3 MiB/s | 44.9 KiB | 00m00s [ 85/163] libgcc-0:15.2.1-3.fc42.x86_64 100% | 3.8 MiB/s | 133.6 KiB | 00m00s [ 86/163] libstdc++-0:15.2.1-3.fc42.x86 100% | 17.3 MiB/s | 919.8 KiB | 00m00s [ 87/163] libusb1-0:1.0.29-4.fc42.x86_6 100% | 2.3 MiB/s | 79.9 KiB | 00m00s [ 88/163] zlib-ng-compat-0:2.2.5-2.fc42 100% | 1.2 MiB/s | 79.2 KiB | 00m00s [ 89/163] libselinux-0:3.8-3.fc42.x86_6 100% | 5.6 MiB/s | 97.2 KiB | 00m00s [ 90/163] audit-libs-0:4.1.2-2.fc42.x86 100% | 8.0 MiB/s | 139.0 KiB | 00m00s [ 91/163] libsemanage-0:3.8.1-3.fc42.x8 100% | 6.7 MiB/s | 123.8 KiB | 00m00s [ 92/163] libsepol-0:3.8-1.fc42.x86_64 100% | 6.6 MiB/s | 348.9 KiB | 00m00s [ 93/163] openssl-libs-1:3.2.6-2.fc42.x 100% | 21.4 MiB/s | 2.3 MiB | 00m00s [ 94/163] filesystem-0:3.18-47.fc42.x86 100% | 19.9 MiB/s | 1.3 MiB | 00m00s [ 95/163] libeconf-0:0.7.6-2.fc42.x86_6 100% | 502.4 KiB/s | 35.2 KiB | 00m00s [ 96/163] libxcrypt-0:4.4.38-7.fc42.x86 100% | 2.9 MiB/s | 127.2 KiB | 00m00s [ 97/163] pam-libs-0:1.7.0-6.fc42.x86_6 100% | 1.2 MiB/s | 57.5 KiB | 00m00s [ 98/163] pcre2-syntax-0:10.46-1.fc42.n 100% | 4.7 MiB/s | 162.0 KiB | 00m00s [ 99/163] gnutls-0:3.8.10-1.fc42.x86_64 100% | 29.8 MiB/s | 1.4 MiB | 00m00s [100/163] libidn2-0:2.3.8-1.fc42.x86_64 100% | 5.0 MiB/s | 174.8 KiB | 00m00s [101/163] pcre2-0:10.46-1.fc42.x86_64 100% | 2.8 MiB/s | 262.2 KiB | 00m00s [102/163] libtasn1-0:4.20.0-1.fc42.x86_ 100% | 2.4 MiB/s | 75.0 KiB | 00m00s [103/163] libunistring-0:1.1-9.fc42.x86 100% | 13.6 MiB/s | 542.5 KiB | 00m00s [104/163] nettle-0:3.10.1-1.fc42.x86_64 100% | 11.2 MiB/s | 424.4 KiB | 00m00s [105/163] openldap-0:2.6.10-1.fc42.x86_ 100% | 5.6 MiB/s | 258.6 KiB | 00m00s [106/163] cyrus-sasl-lib-0:2.1.28-30.fc 100% | 19.4 MiB/s | 793.5 KiB | 00m00s [107/163] libevent-0:2.1.12-15.fc42.x86 100% | 7.1 MiB/s | 260.2 KiB | 00m00s [108/163] libtool-ltdl-0:2.5.4-4.fc42.x 100% | 1.3 MiB/s | 36.2 KiB | 00m00s [109/163] gdbm-libs-1:1.23-9.fc42.x86_6 100% | 1.8 MiB/s | 57.0 KiB | 00m00s [110/163] file-0:5.46-8.fc42.x86_64 100% | 4.8 MiB/s | 49.3 KiB | 00m00s [111/163] rust-srpm-macros-0:26.4-1.fc4 100% | 1.4 MiB/s | 11.7 KiB | 00m00s [112/163] file-libs-0:5.46-8.fc42.x86_6 100% | 31.9 MiB/s | 850.5 KiB | 00m00s [113/163] sqlite-libs-0:3.47.2-5.fc42.x 100% | 11.9 MiB/s | 753.8 KiB | 00m00s [114/163] dwz-0:0.16-1.fc42.x86_64 100% | 3.9 MiB/s | 135.5 KiB | 00m00s [115/163] efi-srpm-macros-0:6-3.fc42.no 100% | 661.6 KiB/s | 22.5 KiB | 00m00s [116/163] filesystem-srpm-macros-0:3.18 100% | 790.1 KiB/s | 26.1 KiB | 00m00s [117/163] fonts-srpm-macros-1:2.0.5-22. 100% | 824.5 KiB/s | 27.2 KiB | 00m00s [118/163] go-srpm-macros-0:3.8.0-1.fc42 100% | 832.3 KiB/s | 28.3 KiB | 00m00s [119/163] pyproject-srpm-macros-0:1.18. 100% | 416.0 KiB/s | 13.7 KiB | 00m00s [120/163] python-srpm-macros-0:3.13-5.f 100% | 468.0 KiB/s | 22.5 KiB | 00m00s [121/163] qt5-srpm-macros-0:5.15.17-1.f 100% | 249.0 KiB/s | 8.7 KiB | 00m00s [122/163] qt6-srpm-macros-0:6.9.3-1.fc4 100% | 279.8 KiB/s | 9.2 KiB | 00m00s [123/163] ca-certificates-0:2025.2.80_v 100% | 17.3 MiB/s | 973.5 KiB | 00m00s [124/163] crypto-policies-0:20250707-1. 100% | 1.4 MiB/s | 96.0 KiB | 00m00s [125/163] systemd-libs-0:257.10-1.fc42. 100% | 8.3 MiB/s | 809.6 KiB | 00m00s [126/163] p11-kit-0:0.25.8-1.fc42.x86_6 100% | 9.3 MiB/s | 503.5 KiB | 00m00s [127/163] libffi-0:3.4.6-5.fc42.x86_64 100% | 739.5 KiB/s | 39.9 KiB | 00m00s [128/163] p11-kit-trust-0:0.25.8-1.fc42 100% | 3.0 MiB/s | 139.2 KiB | 00m00s [129/163] elfutils-libelf-0:0.194-1.fc4 100% | 5.0 MiB/s | 205.2 KiB | 00m00s [130/163] elfutils-libs-0:0.194-1.fc42. 100% | 4.9 MiB/s | 271.6 KiB | 00m00s [131/163] elfutils-debuginfod-client-0: 100% | 1.3 MiB/s | 46.9 KiB | 00m00s [132/163] elfutils-0:0.194-1.fc42.x86_6 100% | 14.4 MiB/s | 575.4 KiB | 00m00s [133/163] libcap-ng-0:0.8.5-8.fc42.x86_ 100% | 2.9 MiB/s | 32.6 KiB | 00m00s [134/163] lua-libs-0:5.4.8-1.fc42.x86_6 100% | 2.7 MiB/s | 131.9 KiB | 00m00s [135/163] libgomp-0:15.2.1-3.fc42.x86_6 100% | 7.8 MiB/s | 374.0 KiB | 00m00s [136/163] jansson-0:2.14-2.fc42.x86_64 100% | 1.5 MiB/s | 45.7 KiB | 00m00s [137/163] debugedit-0:5.1-7.fc42.x86_64 100% | 2.3 MiB/s | 78.8 KiB | 00m00s [138/163] pkgconf-pkg-config-0:2.3.0-2. 100% | 330.8 KiB/s | 9.9 KiB | 00m00s [139/163] libarchive-0:3.8.1-1.fc42.x86 100% | 5.8 MiB/s | 421.6 KiB | 00m00s [140/163] pkgconf-0:2.3.0-2.fc42.x86_64 100% | 748.1 KiB/s | 44.9 KiB | 00m00s [141/163] pkgconf-m4-0:2.3.0-2.fc42.noa 100% | 323.5 KiB/s | 14.2 KiB | 00m00s [142/163] libpkgconf-0:2.3.0-2.fc42.x86 100% | 1.3 MiB/s | 38.4 KiB | 00m00s [143/163] curl-0:8.11.1-6.fc42.x86_64 100% | 4.0 MiB/s | 220.0 KiB | 00m00s [144/163] binutils-0:2.44-6.fc42.x86_64 100% | 22.6 MiB/s | 5.8 MiB | 00m00s [145/163] alternatives-0:1.33-1.fc42.x8 100% | 664.7 KiB/s | 40.5 KiB | 00m00s [146/163] libxml2-0:2.12.10-5.fc42.x86_ 100% | 29.5 MiB/s | 693.8 KiB | 00m00s [147/163] elfutils-default-yama-scope-0 100% | 375.0 KiB/s | 12.4 KiB | 00m00s [148/163] fedora-release-0:42-30.noarch 100% | 300.4 KiB/s | 13.5 KiB | 00m00s [149/163] fedora-release-identity-basic 100% | 297.8 KiB/s | 14.3 KiB | 00m00s [150/163] libcurl-0:8.11.1-6.fc42.x86_6 100% | 7.4 MiB/s | 371.7 KiB | 00m00s [151/163] libnghttp2-0:1.64.0-3.fc42.x8 100% | 2.4 MiB/s | 77.7 KiB | 00m00s [152/163] libssh-0:0.11.3-1.fc42.x86_64 100% | 4.8 MiB/s | 233.0 KiB | 00m00s [153/163] libpsl-0:0.21.5-5.fc42.x86_64 100% | 2.1 MiB/s | 64.0 KiB | 00m00s [154/163] libssh-config-0:0.11.3-1.fc42 100% | 268.0 KiB/s | 9.1 KiB | 00m00s [155/163] xxhash-libs-0:0.8.3-2.fc42.x8 100% | 1.2 MiB/s | 39.1 KiB | 00m00s [156/163] systemd-standalone-sysusers-0 100% | 2.7 MiB/s | 153.7 KiB | 00m00s [157/163] gdb-minimal-0:16.3-1.fc42.x86 100% | 44.5 MiB/s | 4.4 MiB | 00m00s [158/163] publicsuffix-list-dafsa-0:202 100% | 1.1 MiB/s | 59.2 KiB | 00m00s [159/163] keyutils-libs-0:1.6.3-5.fc42. 100% | 1.0 MiB/s | 31.5 KiB | 00m00s [160/163] libcom_err-0:1.47.2-3.fc42.x8 100% | 868.6 KiB/s | 26.9 KiB | 00m00s [161/163] krb5-libs-0:1.21.3-6.fc42.x86 100% | 14.5 MiB/s | 759.8 KiB | 00m00s [162/163] libbrotli-0:1.1.0-10.fc42.x86 100% | 17.5 MiB/s | 339.6 KiB | 00m00s [163/163] libverto-0:0.3.2-10.fc42.x86_ 100% | 717.3 KiB/s | 20.8 KiB | 00m00s -------------------------------------------------------------------------------- [163/163] Total 100% | 18.7 MiB/s | 58.9 MiB | 00m03s Running transaction Importing OpenPGP key 0x105EF944: UserID : "Fedora (42) " Fingerprint: B0F4950458F69E1150C6C5EDC8AC4916105EF944 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-42-primary The key was successfully imported. [ 1/165] Verify package files 100% | 714.0 B/s | 163.0 B | 00m00s >>> Running %pretrans scriptlet: filesystem-0:3.18-47.fc42.x86_64 >>> Finished %pretrans scriptlet: filesystem-0:3.18-47.fc42.x86_64 >>> [RPM] /var/lib/mock/fedora-42-x86_64-1762357903.141268/root/var/cache/dnf/co [ 2/165] Prepare transaction 100% | 2.0 KiB/s | 163.0 B | 00m00s [ 3/165] Installing libgcc-0:15.2.1-3. 100% | 131.0 MiB/s | 268.3 KiB | 00m00s [ 4/165] Installing publicsuffix-list- 100% | 68.2 MiB/s | 69.8 KiB | 00m00s [ 5/165] Installing libssh-config-0:0. 100% | 0.0 B/s | 816.0 B | 00m00s [ 6/165] Installing fedora-release-ide 100% | 882.8 KiB/s | 904.0 B | 00m00s [ 7/165] Installing fedora-gpg-keys-0: 100% | 19.0 MiB/s | 174.8 KiB | 00m00s [ 8/165] Installing fedora-repos-0:42- 100% | 0.0 B/s | 5.7 KiB | 00m00s [ 9/165] Installing fedora-release-com 100% | 12.0 MiB/s | 24.5 KiB | 00m00s [ 10/165] Installing fedora-release-0:4 100% | 3.7 KiB/s | 124.0 B | 00m00s >>> Running sysusers scriptlet: setup-0:2.15.0-13.fc42.noarch >>> Finished sysusers scriptlet: setup-0:2.15.0-13.fc42.noarch >>> Scriptlet output: >>> Creating group 'adm' with GID 4. >>> Creating group 'audio' with GID 63. >>> Creating group 'bin' with GID 1. >>> Creating group 'cdrom' with GID 11. >>> Creating group 'clock' with GID 103. >>> Creating group 'daemon' with GID 2. >>> 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. >>> >>> Running sysusers scriptlet: setup-0:2.15.0-13.fc42.noarch >>> Finished sysusers scriptlet: setup-0:2.15.0-13.fc42.noarch >>> Scriptlet output: >>> Creating user 'adm' (adm) with UID 3 and GID 4. >>> Creating user 'bin' (bin) with UID 1 and GID 1. >>> 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 20. >>> 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. >>> [ 11/165] Installing setup-0:2.15.0-13. 100% | 41.7 MiB/s | 726.7 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 12/165] Installing filesystem-0:3.18- 100% | 1.4 MiB/s | 212.8 KiB | 00m00s [ 13/165] Installing basesystem-0:11-22 100% | 0.0 B/s | 124.0 B | 00m00s [ 14/165] Installing pkgconf-m4-0:2.3.0 100% | 0.0 B/s | 14.8 KiB | 00m00s [ 15/165] Installing qt6-srpm-macros-0: 100% | 0.0 B/s | 740.0 B | 00m00s [ 16/165] Installing qt5-srpm-macros-0: 100% | 0.0 B/s | 776.0 B | 00m00s [ 17/165] Installing rust-srpm-macros-0 100% | 0.0 B/s | 5.6 KiB | 00m00s [ 18/165] Installing pcre2-syntax-0:10. 100% | 135.6 MiB/s | 277.8 KiB | 00m00s [ 19/165] Installing gnulib-l10n-0:2024 100% | 107.7 MiB/s | 661.9 KiB | 00m00s [ 20/165] Installing coreutils-common-0 100% | 247.9 MiB/s | 11.2 MiB | 00m00s [ 21/165] Installing ncurses-base-0:6.5 100% | 38.2 MiB/s | 352.2 KiB | 00m00s [ 22/165] Installing glibc-minimal-lang 100% | 121.1 KiB/s | 124.0 B | 00m00s [ 23/165] Installing ncurses-libs-0:6.5 100% | 155.1 MiB/s | 952.8 KiB | 00m00s [ 24/165] Installing glibc-0:2.41-11.fc 100% | 158.4 MiB/s | 6.7 MiB | 00m00s [ 25/165] Installing bash-0:5.2.37-1.fc 100% | 204.2 MiB/s | 8.2 MiB | 00m00s [ 26/165] Installing glibc-common-0:2.4 100% | 48.6 MiB/s | 1.0 MiB | 00m00s [ 27/165] Installing glibc-gconv-extra- 100% | 146.2 MiB/s | 7.3 MiB | 00m00s [ 28/165] Installing zlib-ng-compat-0:2 100% | 135.2 MiB/s | 138.4 KiB | 00m00s [ 29/165] Installing bzip2-libs-0:1.0.8 100% | 83.7 MiB/s | 85.7 KiB | 00m00s [ 30/165] Installing libstdc++-0:15.2.1 100% | 283.6 MiB/s | 2.8 MiB | 00m00s [ 31/165] Installing xz-libs-1:5.8.1-2. 100% | 213.8 MiB/s | 218.9 KiB | 00m00s [ 32/165] Installing gmp-1:6.3.0-4.fc42 100% | 264.8 MiB/s | 813.5 KiB | 00m00s [ 33/165] Installing libuuid-0:2.41.2-7 100% | 37.6 MiB/s | 38.5 KiB | 00m00s [ 34/165] Installing readline-0:8.2-13. 100% | 237.9 MiB/s | 487.1 KiB | 00m00s [ 35/165] Installing popt-0:1.19-8.fc42 100% | 34.0 MiB/s | 139.4 KiB | 00m00s [ 36/165] Installing libblkid-0:2.41.2- 100% | 128.6 MiB/s | 263.4 KiB | 00m00s [ 37/165] Installing libzstd-0:1.5.7-1. 100% | 263.4 MiB/s | 809.1 KiB | 00m00s [ 38/165] Installing elfutils-libelf-0: 100% | 280.3 MiB/s | 1.1 MiB | 00m00s [ 39/165] Installing libgpg-error-0:1.5 100% | 48.8 MiB/s | 900.0 KiB | 00m00s [ 40/165] Installing libxcrypt-0:4.4.38 100% | 140.2 MiB/s | 287.2 KiB | 00m00s [ 41/165] Installing sqlite-libs-0:3.47 100% | 75.6 MiB/s | 1.5 MiB | 00m00s [ 42/165] Installing crypto-policies-0: 100% | 16.4 MiB/s | 167.8 KiB | 00m00s [ 43/165] Installing libattr-0:2.5.2-5. 100% | 27.4 MiB/s | 28.1 KiB | 00m00s [ 44/165] Installing libacl-0:2.3.2-3.f 100% | 38.2 MiB/s | 39.2 KiB | 00m00s [ 45/165] Installing libtasn1-0:4.20.0- 100% | 173.9 MiB/s | 178.1 KiB | 00m00s [ 46/165] Installing libunistring-0:1.1 100% | 246.7 MiB/s | 1.7 MiB | 00m00s [ 47/165] Installing libidn2-0:2.3.8-1. 100% | 109.9 MiB/s | 562.7 KiB | 00m00s [ 48/165] Installing dwz-0:0.16-1.fc42. 100% | 18.8 MiB/s | 288.5 KiB | 00m00s [ 49/165] Installing mpfr-0:4.2.2-1.fc4 100% | 202.7 MiB/s | 830.4 KiB | 00m00s [ 50/165] Installing gawk-0:5.3.1-1.fc4 100% | 77.0 MiB/s | 1.7 MiB | 00m00s [ 51/165] Installing unzip-0:6.0-66.fc4 100% | 27.5 MiB/s | 393.8 KiB | 00m00s [ 52/165] Installing file-libs-0:5.46-8 100% | 474.3 MiB/s | 11.9 MiB | 00m00s [ 53/165] Installing file-0:5.46-8.fc42 100% | 7.6 MiB/s | 101.7 KiB | 00m00s [ 54/165] Installing libsmartcols-0:2.4 100% | 88.7 MiB/s | 181.6 KiB | 00m00s [ 55/165] Installing lz4-libs-0:1.10.0- 100% | 154.7 MiB/s | 158.5 KiB | 00m00s [ 56/165] Installing json-c-0:0.18-2.fc 100% | 85.9 MiB/s | 88.0 KiB | 00m00s [ 57/165] Installing libsepol-0:3.8-1.f 100% | 269.2 MiB/s | 827.0 KiB | 00m00s [ 58/165] Installing libeconf-0:0.7.6-2 100% | 64.7 MiB/s | 66.2 KiB | 00m00s [ 59/165] Installing pcre2-0:10.46-1.fc 100% | 227.6 MiB/s | 699.1 KiB | 00m00s [ 60/165] Installing libselinux-0:3.8-3 100% | 94.9 MiB/s | 194.3 KiB | 00m00s [ 61/165] Installing grep-0:3.11-10.fc4 100% | 50.2 MiB/s | 1.0 MiB | 00m00s [ 62/165] Installing findutils-1:4.10.0 100% | 85.2 MiB/s | 1.9 MiB | 00m00s [ 63/165] Installing sed-0:4.9-4.fc42.x 100% | 44.5 MiB/s | 865.5 KiB | 00m00s [ 64/165] Installing xz-1:5.8.1-2.fc42. 100% | 55.5 MiB/s | 1.3 MiB | 00m00s [ 65/165] Installing libmount-0:2.41.2- 100% | 182.5 MiB/s | 373.8 KiB | 00m00s [ 66/165] Installing libffi-0:3.4.6-5.f 100% | 81.7 MiB/s | 83.7 KiB | 00m00s [ 67/165] Installing p11-kit-0:0.25.8-1 100% | 88.1 MiB/s | 2.3 MiB | 00m00s [ 68/165] Installing libcap-ng-0:0.8.5- 100% | 69.2 MiB/s | 70.8 KiB | 00m00s [ 69/165] Installing audit-libs-0:4.1.2 100% | 124.2 MiB/s | 381.5 KiB | 00m00s [ 70/165] Installing pam-libs-0:1.7.0-6 100% | 63.0 MiB/s | 129.1 KiB | 00m00s [ 71/165] Installing libcap-0:2.73-2.fc 100% | 13.8 MiB/s | 212.1 KiB | 00m00s [ 72/165] Installing systemd-libs-0:257 100% | 248.4 MiB/s | 2.2 MiB | 00m00s [ 73/165] Installing lua-libs-0:5.4.8-1 100% | 137.7 MiB/s | 282.0 KiB | 00m00s [ 74/165] Installing alternatives-0:1.3 100% | 4.8 MiB/s | 63.8 KiB | 00m00s [ 75/165] Installing p11-kit-trust-0:0. 100% | 15.1 MiB/s | 448.3 KiB | 00m00s [ 76/165] Installing openssl-libs-1:3.2 100% | 289.8 MiB/s | 7.8 MiB | 00m00s [ 77/165] Installing coreutils-0:9.6-6. 100% | 104.8 MiB/s | 5.5 MiB | 00m00s [ 78/165] Installing ca-certificates-0: 100% | 1.2 MiB/s | 2.5 MiB | 00m02s [ 79/165] Installing gzip-0:1.13-3.fc42 100% | 22.9 MiB/s | 398.4 KiB | 00m00s [ 80/165] Installing rpm-sequoia-0:1.7. 100% | 268.3 MiB/s | 2.4 MiB | 00m00s [ 81/165] Installing libfsverity-0:1.6- 100% | 32.7 MiB/s | 33.5 KiB | 00m00s [ 82/165] Installing libevent-0:2.1.12- 100% | 177.1 MiB/s | 906.9 KiB | 00m00s [ 83/165] Installing util-linux-core-0: 100% | 59.2 MiB/s | 1.5 MiB | 00m00s [ 84/165] Installing libusb1-0:1.0.29-4 100% | 84.4 MiB/s | 172.9 KiB | 00m00s [ 85/165] Installing systemd-standalone 100% | 19.4 MiB/s | 277.8 KiB | 00m00s [ 86/165] Installing rpm-libs-0:5.99.90 100% | 227.4 MiB/s | 931.3 KiB | 00m00s [ 87/165] Installing libsemanage-0:3.8. 100% | 74.7 MiB/s | 306.2 KiB | 00m00s [ 88/165] Installing shadow-utils-2:4.1 100% | 49.9 MiB/s | 4.0 MiB | 00m00s >>> Running sysusers scriptlet: tpm2-tss-0:4.1.3-6.fc42.x86_64 >>> Finished sysusers scriptlet: tpm2-tss-0:4.1.3-6.fc42.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/165] Installing tpm2-tss-0:4.1.3-6 100% | 156.8 MiB/s | 1.6 MiB | 00m00s [ 90/165] Installing ima-evm-utils-libs 100% | 60.5 MiB/s | 62.0 KiB | 00m00s [ 91/165] Installing tar-2:1.35-5.fc42. 100% | 105.8 MiB/s | 3.0 MiB | 00m00s [ 92/165] Installing zstd-0:1.5.7-1.fc4 100% | 90.0 MiB/s | 1.7 MiB | 00m00s [ 93/165] Installing zip-0:3.0-43.fc42. 100% | 40.3 MiB/s | 702.4 KiB | 00m00s [ 94/165] Installing libpsl-0:0.21.5-5. 100% | 75.7 MiB/s | 77.5 KiB | 00m00s [ 95/165] Installing liblastlog2-0:2.41 100% | 2.5 MiB/s | 35.8 KiB | 00m00s [ 96/165] Installing libassuan-0:2.5.7- 100% | 82.8 MiB/s | 169.6 KiB | 00m00s [ 97/165] Installing libgcrypt-0:1.11.0 100% | 224.2 MiB/s | 1.6 MiB | 00m00s [ 98/165] Installing libksba-0:1.6.7-3. 100% | 131.9 MiB/s | 405.1 KiB | 00m00s [ 99/165] Installing libfdisk-0:2.41.2- 100% | 186.3 MiB/s | 381.5 KiB | 00m00s [100/165] Installing nettle-0:3.10.1-1. 100% | 193.8 MiB/s | 793.6 KiB | 00m00s [101/165] Installing gnutls-0:3.8.10-1. 100% | 240.0 MiB/s | 3.8 MiB | 00m00s [102/165] Installing libxml2-0:2.12.10- 100% | 81.2 MiB/s | 1.7 MiB | 00m00s [103/165] Installing libarchive-0:3.8.1 100% | 186.9 MiB/s | 957.1 KiB | 00m00s [104/165] Installing bzip2-0:1.0.8-20.f 100% | 7.2 MiB/s | 103.8 KiB | 00m00s [105/165] Installing add-determinism-0: 100% | 117.4 MiB/s | 2.5 MiB | 00m00s [106/165] Installing build-reproducibil 100% | 0.0 B/s | 1.0 KiB | 00m00s [107/165] Installing ed-0:1.21-2.fc42.x 100% | 11.2 MiB/s | 148.8 KiB | 00m00s [108/165] Installing patch-0:2.8-1.fc42 100% | 16.9 MiB/s | 224.3 KiB | 00m00s [109/165] Installing filesystem-srpm-ma 100% | 38.0 MiB/s | 38.9 KiB | 00m00s [110/165] Installing elfutils-default-y 100% | 136.2 KiB/s | 2.0 KiB | 00m00s [111/165] Installing elfutils-libs-0:0. 100% | 168.3 MiB/s | 689.3 KiB | 00m00s [112/165] Installing cpio-0:2.15-4.fc42 100% | 52.4 MiB/s | 1.1 MiB | 00m00s [113/165] Installing diffutils-0:3.12-1 100% | 74.3 MiB/s | 1.6 MiB | 00m00s [114/165] Installing npth-0:1.8-2.fc42. 100% | 49.5 MiB/s | 50.7 KiB | 00m00s [115/165] Installing libtool-ltdl-0:2.5 100% | 69.6 MiB/s | 71.2 KiB | 00m00s [116/165] Installing gdbm-libs-1:1.23-9 100% | 128.5 MiB/s | 131.6 KiB | 00m00s [117/165] Installing cyrus-sasl-lib-0:2 100% | 104.7 MiB/s | 2.3 MiB | 00m00s [118/165] Installing openldap-0:2.6.10- 100% | 128.8 MiB/s | 659.6 KiB | 00m00s [119/165] Installing gnupg2-0:2.4.7-2.f 100% | 181.6 MiB/s | 9.8 MiB | 00m00s [120/165] Installing rpm-sign-libs-0:5. 100% | 39.6 MiB/s | 40.5 KiB | 00m00s [121/165] Installing libgomp-0:15.2.1-3 100% | 265.1 MiB/s | 543.0 KiB | 00m00s [122/165] Installing rpm-build-libs-0:5 100% | 129.5 MiB/s | 265.2 KiB | 00m00s [123/165] Installing jansson-0:2.14-2.f 100% | 92.2 MiB/s | 94.4 KiB | 00m00s [124/165] Installing libpkgconf-0:2.3.0 100% | 77.4 MiB/s | 79.2 KiB | 00m00s [125/165] Installing pkgconf-0:2.3.0-2. 100% | 6.3 MiB/s | 91.0 KiB | 00m00s [126/165] Installing pkgconf-pkg-config 100% | 147.8 KiB/s | 1.8 KiB | 00m00s [127/165] Installing libnghttp2-0:1.64. 100% | 167.5 MiB/s | 171.5 KiB | 00m00s [128/165] Installing xxhash-libs-0:0.8. 100% | 89.4 MiB/s | 91.6 KiB | 00m00s [129/165] Installing keyutils-libs-0:1. 100% | 58.3 MiB/s | 59.7 KiB | 00m00s [130/165] Installing libcom_err-0:1.47. 100% | 66.6 MiB/s | 68.2 KiB | 00m00s [131/165] Installing libverto-0:0.3.2-1 100% | 26.6 MiB/s | 27.2 KiB | 00m00s [132/165] Installing krb5-libs-0:1.21.3 100% | 208.3 MiB/s | 2.3 MiB | 00m00s [133/165] Installing libssh-0:0.11.3-1. 100% | 185.3 MiB/s | 569.2 KiB | 00m00s [134/165] Installing libbrotli-0:1.1.0- 100% | 204.0 MiB/s | 835.6 KiB | 00m00s [135/165] Installing libcurl-0:8.11.1-6 100% | 203.9 MiB/s | 835.2 KiB | 00m00s [136/165] Installing elfutils-debuginfo 100% | 5.6 MiB/s | 86.2 KiB | 00m00s [137/165] Installing elfutils-0:0.194-1 100% | 122.1 MiB/s | 2.9 MiB | 00m00s [138/165] Installing binutils-0:2.44-6. 100% | 232.8 MiB/s | 25.8 MiB | 00m00s [139/165] Installing gdb-minimal-0:16.3 100% | 240.9 MiB/s | 13.2 MiB | 00m00s [140/165] Installing debugedit-0:5.1-7. 100% | 13.6 MiB/s | 195.4 KiB | 00m00s [141/165] Installing curl-0:8.11.1-6.fc 100% | 12.6 MiB/s | 453.1 KiB | 00m00s [142/165] Installing rpm-0:5.99.90-6.fc 100% | 44.8 MiB/s | 2.5 MiB | 00m00s [143/165] Installing lua-srpm-macros-0: 100% | 1.9 MiB/s | 1.9 KiB | 00m00s [144/165] Installing tree-sitter-srpm-m 100% | 7.2 MiB/s | 7.4 KiB | 00m00s [145/165] Installing zig-srpm-macros-0: 100% | 0.0 B/s | 1.7 KiB | 00m00s [146/165] Installing efi-srpm-macros-0: 100% | 40.2 MiB/s | 41.1 KiB | 00m00s [147/165] Installing perl-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [148/165] Installing package-notes-srpm 100% | 0.0 B/s | 2.0 KiB | 00m00s [149/165] Installing openblas-srpm-macr 100% | 0.0 B/s | 392.0 B | 00m00s [150/165] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.2 KiB | 00m00s [151/165] Installing kernel-srpm-macros 100% | 0.0 B/s | 2.3 KiB | 00m00s [152/165] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [153/165] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [154/165] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [155/165] Installing ansible-srpm-macro 100% | 35.4 MiB/s | 36.2 KiB | 00m00s [156/165] Installing forge-srpm-macros- 100% | 39.3 MiB/s | 40.3 KiB | 00m00s [157/165] Installing fonts-srpm-macros- 100% | 55.7 MiB/s | 57.0 KiB | 00m00s [158/165] Installing go-srpm-macros-0:3 100% | 61.6 MiB/s | 63.0 KiB | 00m00s [159/165] Installing python-srpm-macros 100% | 50.9 MiB/s | 52.2 KiB | 00m00s [160/165] Installing redhat-rpm-config- 100% | 62.6 MiB/s | 192.2 KiB | 00m00s [161/165] Installing rpm-build-0:5.99.9 100% | 15.8 MiB/s | 290.5 KiB | 00m00s [162/165] Installing pyproject-srpm-mac 100% | 1.2 MiB/s | 2.5 KiB | 00m00s [163/165] Installing util-linux-0:2.41. 100% | 59.6 MiB/s | 3.6 MiB | 00m00s [164/165] Installing which-0:2.23-2.fc4 100% | 6.0 MiB/s | 85.7 KiB | 00m00s [165/165] Installing info-0:7.2-3.fc42. 100% | 132.6 KiB/s | 358.3 KiB | 00m03s Warning: skipped OpenPGP checks for 22 packages from repository: copr_base 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.6.0-1.fc42.x86_64 alternatives-1.33-1.fc42.x86_64 ansible-srpm-macros-1-17.1.fc42.noarch audit-libs-4.1.2-2.fc42.x86_64 basesystem-11-22.fc42.noarch bash-5.2.37-1.fc42.x86_64 binutils-2.44-6.fc42.x86_64 build-reproducibility-srpm-macros-0.6.0-1.fc42.noarch bzip2-1.0.8-20.fc42.x86_64 bzip2-libs-1.0.8-20.fc42.x86_64 ca-certificates-2025.2.80_v9.0.304-1.0.fc42.noarch coreutils-9.6-6.fc42.x86_64 coreutils-common-9.6-6.fc42.x86_64 cpio-2.15-4.fc42.x86_64 crypto-policies-20250707-1.gitad370a8.fc42.noarch curl-8.11.1-6.fc42.x86_64 cyrus-sasl-lib-2.1.28-30.fc42.x86_64 debugedit-5.1-7.fc42.x86_64 diffutils-3.12-1.fc42.x86_64 dwz-0.16-1.fc42.x86_64 ed-1.21-2.fc42.x86_64 efi-srpm-macros-6-3.fc42.noarch elfutils-0.194-1.fc42.x86_64 elfutils-debuginfod-client-0.194-1.fc42.x86_64 elfutils-default-yama-scope-0.194-1.fc42.noarch elfutils-libelf-0.194-1.fc42.x86_64 elfutils-libs-0.194-1.fc42.x86_64 fedora-gpg-keys-42-1.noarch fedora-release-42-30.noarch fedora-release-common-42-30.noarch fedora-release-identity-basic-42-30.noarch fedora-repos-42-1.noarch file-5.46-8.fc42.x86_64 file-libs-5.46-8.fc42.x86_64 filesystem-3.18-47.fc42.x86_64 filesystem-srpm-macros-3.18-47.fc42.noarch findutils-4.10.0-5.fc42.x86_64 fonts-srpm-macros-2.0.5-22.fc42.noarch forge-srpm-macros-0.4.0-2.fc42.noarch fpc-srpm-macros-1.3-14.fc42.noarch gawk-5.3.1-1.fc42.x86_64 gdb-minimal-16.3-1.fc42.x86_64 gdbm-libs-1.23-9.fc42.x86_64 ghc-srpm-macros-1.9.2-2.fc42.noarch glibc-2.41-11.fc42.x86_64 glibc-common-2.41-11.fc42.x86_64 glibc-gconv-extra-2.41-11.fc42.x86_64 glibc-minimal-langpack-2.41-11.fc42.x86_64 gmp-6.3.0-4.fc42.x86_64 gnat-srpm-macros-6-7.fc42.noarch gnulib-l10n-20241231-1.fc42.noarch gnupg2-2.4.7-2.fc42.x86_64 gnutls-3.8.10-1.fc42.x86_64 go-srpm-macros-3.8.0-1.fc42.noarch gpg-pubkey-105ef944-65ca83d1 grep-3.11-10.fc42.x86_64 gzip-1.13-3.fc42.x86_64 ima-evm-utils-libs-1.6.2-4.fc42.x86_64 info-7.2-3.fc42.x86_64 jansson-2.14-2.fc42.x86_64 json-c-0.18-2.fc42.x86_64 kernel-srpm-macros-1.0-25.fc42.noarch keyutils-libs-1.6.3-5.fc42.x86_64 krb5-libs-1.21.3-6.fc42.x86_64 libacl-2.3.2-3.fc42.x86_64 libarchive-3.8.1-1.fc42.x86_64 libassuan-2.5.7-3.fc42.x86_64 libattr-2.5.2-5.fc42.x86_64 libblkid-2.41.2-7.fc42.x86_64 libbrotli-1.1.0-10.fc42.x86_64 libcap-2.73-2.fc42.x86_64 libcap-ng-0.8.5-8.fc42.x86_64 libcom_err-1.47.2-3.fc42.x86_64 libcurl-8.11.1-6.fc42.x86_64 libeconf-0.7.6-2.fc42.x86_64 libevent-2.1.12-15.fc42.x86_64 libfdisk-2.41.2-7.fc42.x86_64 libffi-3.4.6-5.fc42.x86_64 libfsverity-1.6-2.fc42.x86_64 libgcc-15.2.1-3.fc42.x86_64 libgcrypt-1.11.0-5.fc42.x86_64 libgomp-15.2.1-3.fc42.x86_64 libgpg-error-1.51-2.fc42.x86_64 libidn2-2.3.8-1.fc42.x86_64 libksba-1.6.7-3.fc42.x86_64 liblastlog2-2.41.2-7.fc42.x86_64 libmount-2.41.2-7.fc42.x86_64 libnghttp2-1.64.0-3.fc42.x86_64 libpkgconf-2.3.0-2.fc42.x86_64 libpsl-0.21.5-5.fc42.x86_64 libselinux-3.8-3.fc42.x86_64 libsemanage-3.8.1-3.fc42.x86_64 libsepol-3.8-1.fc42.x86_64 libsmartcols-2.41.2-7.fc42.x86_64 libssh-0.11.3-1.fc42.x86_64 libssh-config-0.11.3-1.fc42.noarch libstdc++-15.2.1-3.fc42.x86_64 libtasn1-4.20.0-1.fc42.x86_64 libtool-ltdl-2.5.4-4.fc42.x86_64 libunistring-1.1-9.fc42.x86_64 libusb1-1.0.29-4.fc42.x86_64 libuuid-2.41.2-7.fc42.x86_64 libverto-0.3.2-10.fc42.x86_64 libxcrypt-4.4.38-7.fc42.x86_64 libxml2-2.12.10-5.fc42.x86_64 libzstd-1.5.7-1.fc42.x86_64 lua-libs-5.4.8-1.fc42.x86_64 lua-srpm-macros-1-15.fc42.noarch lz4-libs-1.10.0-2.fc42.x86_64 mpfr-4.2.2-1.fc42.x86_64 ncurses-base-6.5-5.20250125.fc42.noarch ncurses-libs-6.5-5.20250125.fc42.x86_64 nettle-3.10.1-1.fc42.x86_64 npth-1.8-2.fc42.x86_64 ocaml-srpm-macros-10-4.fc42.noarch openblas-srpm-macros-2-19.fc42.noarch openldap-2.6.10-1.fc42.x86_64 openssl-libs-3.2.6-2.fc42.x86_64 p11-kit-0.25.8-1.fc42.x86_64 p11-kit-trust-0.25.8-1.fc42.x86_64 package-notes-srpm-macros-0.5-13.fc42.noarch pam-libs-1.7.0-6.fc42.x86_64 patch-2.8-1.fc42.x86_64 pcre2-10.46-1.fc42.x86_64 pcre2-syntax-10.46-1.fc42.noarch perl-srpm-macros-1-57.fc42.noarch pkgconf-2.3.0-2.fc42.x86_64 pkgconf-m4-2.3.0-2.fc42.noarch pkgconf-pkg-config-2.3.0-2.fc42.x86_64 popt-1.19-8.fc42.x86_64 publicsuffix-list-dafsa-20250616-1.fc42.noarch pyproject-srpm-macros-1.18.4-1.fc42.noarch python-srpm-macros-3.13-5.fc42.noarch qt5-srpm-macros-5.15.17-1.fc42.noarch qt6-srpm-macros-6.9.3-1.fc42.noarch readline-8.2-13.fc42.x86_64 redhat-rpm-config-342-4.fc42.noarch rpm-5.99.90-6.fc42.x86_64 rpm-build-5.99.90-6.fc42.x86_64 rpm-build-libs-5.99.90-6.fc42.x86_64 rpm-libs-5.99.90-6.fc42.x86_64 rpm-sequoia-1.7.0-5.fc42.x86_64 rpm-sign-libs-5.99.90-6.fc42.x86_64 rust-srpm-macros-26.4-1.fc42.noarch sed-4.9-4.fc42.x86_64 setup-2.15.0-13.fc42.noarch shadow-utils-4.17.4-1.fc42.x86_64 sqlite-libs-3.47.2-5.fc42.x86_64 systemd-libs-257.10-1.fc42.x86_64 systemd-standalone-sysusers-257.10-1.fc42.x86_64 tar-1.35-5.fc42.x86_64 tpm2-tss-4.1.3-6.fc42.x86_64 tree-sitter-srpm-macros-0.1.0-8.fc42.noarch unzip-6.0-66.fc42.x86_64 util-linux-2.41.2-7.fc42.x86_64 util-linux-core-2.41.2-7.fc42.x86_64 which-2.23-2.fc42.x86_64 xxhash-libs-0.8.3-2.fc42.x86_64 xz-5.8.1-2.fc42.x86_64 xz-libs-5.8.1-2.fc42.x86_64 zig-srpm-macros-1-4.fc42.noarch zip-3.0-43.fc42.x86_64 zlib-ng-compat-2.2.5-2.fc42.x86_64 zstd-1.5.7-1.fc42.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762300800 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.1-2.fc42.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-42-x86_64-1762357903.141268/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-6hiqtmer/python-cheroot/python-cheroot.spec) Config(child) 0 minutes 37 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.1-2.fc42.src.rpm) Config(fedora-42-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-42-x86_64-bootstrap-1762357903.141268/root. INFO: reusing tmpfs at /var/lib/mock/fedora-42-x86_64-bootstrap-1762357903.141268/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-42-x86_64-1762357903.141268/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-4.20.1-1.fc42.x86_64 rpm-sequoia-1.7.0-5.fc42.x86_64 dnf5-5.2.17.0-1.fc42.x86_64 dnf5-plugins-5.2.17.0-1.fc42.x86_64 Finish: chroot init Start: build phase for python-cheroot-11.1.1-2.fc42.src.rpm Start: build setup for python-cheroot-11.1.1-2.fc42.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762300800 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.1-2.fc42.src.rpm Updating and loading repositories: Copr repository 100% | 48.0 KiB/s | 1.5 KiB | 00m00s fedora 100% | 315.6 KiB/s | 31.9 KiB | 00m00s updates 100% | 464.1 KiB/s | 31.1 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: pyproject-rpm-macros noarch 1.18.4-1.fc42 updates 114.9 KiB python3-devel x86_64 3.13.9-1.fc42 updates 1.8 MiB python3-docutils noarch 0.21.2-2.fc42 fedora 4.9 MiB python3-jaraco-functools noarch 4.1.0-2.fc42 fedora 71.6 KiB python3-jaraco-packaging noarch 10.2.3-6.fc42 copr_base 28.1 KiB python3-jaraco-text noarch 4.0.0-7.fc42 copr_base 56.1 KiB python3-portend noarch 3.2.0-11.fc42 copr_base 23.7 KiB python3-pyOpenSSL noarch 25.1.0-1.fc42 copr_base 690.1 KiB python3-pytest noarch 8.3.5-10.fc42 copr_base 21.1 MiB python3-pytest-forked noarch 1.6.0-13.fc42 copr_base 20.4 KiB python3-pytest-mock noarch 3.14.1-4.fc42 copr_base 115.3 KiB python3-pytest-rerunfailures noarch 15.0-6.fc42 copr_base 83.1 KiB python3-requests noarch 2.32.5-1.fc42 copr_base 472.9 KiB python3-requests-toolbelt noarch 1.0.0-14.fc42 copr_base 296.5 KiB python3-requests-unixsocket noarch 0.4.0-15.fc42 copr_base 50.0 KiB python3-rst-linker noarch 2.4.0-16.fc42 copr_base 23.4 KiB python3-sphinx noarch 1:8.1.3-2.fc42 fedora 11.1 MiB python3-sphinx-tabs noarch 3.4.7-6.fc42 copr_base 53.2 KiB python3-sphinx-theme-alabaster noarch 0.7.16-7.fc42 copr_base 41.9 KiB python3-sphinxcontrib-apidoc noarch 0.6.0-3.fc42 copr_base 34.7 KiB python3-trustme noarch 1.2.0-2.fc42 fedora 72.0 KiB Installing dependencies: expat x86_64 2.7.2-1.fc42 updates 298.6 KiB git-core x86_64 2.51.1-1.fc42 updates 23.6 MiB less x86_64 679-1.fc42 updates 406.1 KiB libb2 x86_64 0.98.1-13.fc42 fedora 46.1 KiB libcbor x86_64 0.11.0-3.fc42 fedora 77.8 KiB libedit x86_64 3.1-56.20251016cvs.fc42 updates 240.2 KiB libfido2 x86_64 1.15.0-3.fc42 fedora 242.1 KiB mpdecimal x86_64 4.0.1-1.fc42 updates 217.2 KiB openssh x86_64 9.9p1-11.fc42 updates 1.4 MiB openssh-clients x86_64 9.9p1-11.fc42 updates 2.7 MiB python-pip-wheel noarch 25.2-5.fc42 copr_base 1.2 MiB python-rpm-macros noarch 3.13-5.fc42 updates 22.1 KiB python-setuptools-wheel noarch 78.1.1-6.fc42~bootstrap copr_base 1.1 MiB python3 x86_64 3.13.9-1.fc42 updates 28.7 KiB python3-autocommand noarch 2.2.2-9.fc42 fedora 85.9 KiB python3-babel noarch 2.17.0-3.fc42 copr_base 30.2 MiB python3-build noarch 1.2.2-5.fc42 copr_base 133.9 KiB python3-build+virtualenv noarch 1.2.2-5.fc42 copr_base 7.2 KiB python3-cffi x86_64 2.0.0-1.fc42 copr_base 1.3 MiB python3-charset-normalizer noarch 3.4.4-1.fc42 copr_base 332.4 KiB python3-cryptography x86_64 44.0.0-5.fc42 copr_base 5.0 MiB python3-dateutil noarch 1:2.9.0.post0-3.fc42 copr_base 859.4 KiB python3-distlib noarch 0.4.0-2.fc42 copr_base 1.2 MiB python3-domdf-python-tools noarch 3.9.0-2.fc42 fedora 602.3 KiB python3-filelock noarch 3.15.4-7.fc42 copr_base 89.7 KiB python3-idna noarch 3.10-2.fc42 fedora 628.0 KiB python3-imagesize noarch 1.4.1-14.fc42 copr_base 35.4 KiB python3-iniconfig noarch 2.1.0-1.fc42 copr_base 36.2 KiB python3-jaraco-context noarch 6.0.1-5.fc42 fedora 34.0 KiB python3-jinja2 noarch 3.1.6-6.fc42 copr_base 2.9 MiB python3-libs x86_64 3.13.9-1.fc42 updates 40.1 MiB python3-markupsafe x86_64 3.0.2-2.fc42 fedora 55.8 KiB python3-more-itertools noarch 10.5.0-4.fc42 copr_base 651.3 KiB python3-natsort noarch 8.4.0-8.fc42 copr_base 250.2 KiB python3-packaging noarch 25.0-6.fc42 copr_base 563.3 KiB python3-pbr noarch 7.0.1-1.fc42 copr_base 664.6 KiB python3-platformdirs noarch 4.4.0-3.fc42 copr_base 166.8 KiB python3-pluggy noarch 1.6.0-4.fc42 copr_base 190.7 KiB python3-ply noarch 3.11-30.fc42 copr_base 565.3 KiB python3-py noarch 1.11.0-19.fc42 copr_base 968.5 KiB python3-pycparser noarch 2.22-1.fc42 copr_base 897.0 KiB python3-pygments noarch 2.19.1-3.fc42 copr_base 10.8 MiB python3-pyproject-hooks noarch 1.2.0-2.fc42 fedora 65.4 KiB python3-rpm-generators noarch 14-12.fc42 fedora 81.7 KiB python3-rpm-macros noarch 3.13-5.fc42 updates 6.4 KiB python3-setuptools noarch 78.1.1-6.fc42~bootstrap copr_base 8.6 MiB python3-six noarch 1.17.0-4.fc42 copr_base 117.1 KiB python3-snowballstemmer noarch 2.2.0-15.fc42 fedora 1.7 MiB python3-tempora noarch 5.8.0-4.fc42 copr_base 86.5 KiB python3-typing-extensions noarch 4.12.2-4.fc42 fedora 458.2 KiB python3-urllib3 noarch 2.5.0-1.fc42 copr_base 1.0 MiB python3-virtualenv noarch 20.35.4-2.fc42 copr_base 688.0 KiB tzdata noarch 2025b-1.fc42 fedora 1.6 MiB Transaction Summary: Installing: 74 packages Total size of inbound packages is 42 MiB. Need to download 42 MiB. After this operation, 186 MiB extra will be used (install 186 MiB, remove 0 B). [ 1/74] python3-pyOpenSSL-0:25.1.0-1.fc 100% | 806.1 KiB/s | 118.5 KiB | 00m00s [ 2/74] python3-sphinx-tabs-0:3.4.7-6.f 100% | 1.1 MiB/s | 29.1 KiB | 00m00s [ 3/74] python3-sphinx-theme-alabaster- 100% | 2.0 MiB/s | 24.7 KiB | 00m00s [ 4/74] python3-sphinxcontrib-apidoc-0: 100% | 613.3 KiB/s | 20.2 KiB | 00m00s [ 5/74] pyproject-rpm-macros-0:1.18.4-1 100% | 200.4 KiB/s | 44.9 KiB | 00m00s [ 6/74] python3-devel-0:3.13.9-1.fc42.x 100% | 1.1 MiB/s | 406.9 KiB | 00m00s [ 7/74] python3-jaraco-packaging-0:10.2 100% | 971.4 KiB/s | 23.3 KiB | 00m00s [ 8/74] python3-jaraco-functools-0:4.1. 100% | 139.6 KiB/s | 24.1 KiB | 00m00s [ 9/74] python3-jaraco-text-0:4.0.0-7.f 100% | 876.0 KiB/s | 30.7 KiB | 00m00s [10/74] python3-portend-0:3.2.0-11.fc42 100% | 421.5 KiB/s | 18.5 KiB | 00m00s [11/74] python3-pytest-mock-0:3.14.1-4. 100% | 3.1 MiB/s | 38.2 KiB | 00m00s [12/74] python3-pytest-forked-0:1.6.0-1 100% | 601.3 KiB/s | 18.6 KiB | 00m00s [13/74] python3-requests-0:2.32.5-1.fc4 100% | 5.6 MiB/s | 149.6 KiB | 00m00s [14/74] python3-pytest-rerunfailures-0: 100% | 659.9 KiB/s | 32.3 KiB | 00m00s [15/74] python3-requests-unixsocket-0:0 100% | 859.1 KiB/s | 27.5 KiB | 00m00s [16/74] python3-docutils-0:0.21.2-2.fc4 100% | 3.3 MiB/s | 1.1 MiB | 00m00s [17/74] python3-requests-toolbelt-0:1.0 100% | 1.3 MiB/s | 101.1 KiB | 00m00s [18/74] python3-rst-linker-0:2.4.0-16.f 100% | 679.3 KiB/s | 20.4 KiB | 00m00s [19/74] python3-trustme-0:1.2.0-2.fc42. 100% | 355.2 KiB/s | 35.2 KiB | 00m00s [20/74] python3-sphinx-1:8.1.3-2.fc42.n 100% | 17.2 MiB/s | 2.7 MiB | 00m00s [21/74] python3-jaraco-context-0:6.0.1- 100% | 372.3 KiB/s | 21.6 KiB | 00m00s [22/74] python3-autocommand-0:2.2.2-9.f 100% | 469.4 KiB/s | 36.6 KiB | 00m00s [23/74] python3-snowballstemmer-0:2.2.0 100% | 3.5 MiB/s | 258.7 KiB | 00m00s [24/74] libb2-0:0.98.1-13.fc42.x86_64 100% | 590.3 KiB/s | 25.4 KiB | 00m00s [25/74] python3-domdf-python-tools-0:3. 100% | 641.9 KiB/s | 198.4 KiB | 00m00s [26/74] tzdata-0:2025b-1.fc42.noarch 100% | 13.7 MiB/s | 714.0 KiB | 00m00s [27/74] python3-pytest-0:8.3.5-10.fc42. 100% | 8.4 MiB/s | 2.0 MiB | 00m00s [28/74] python-pip-wheel-0:25.2-5.fc42. 100% | 4.0 MiB/s | 1.1 MiB | 00m00s [29/74] expat-0:2.7.2-1.fc42.x86_64 100% | 1.3 MiB/s | 119.0 KiB | 00m00s [30/74] python3-0:3.13.9-1.fc42.x86_64 100% | 1.1 MiB/s | 30.8 KiB | 00m00s [31/74] python-rpm-macros-0:3.13-5.fc42 100% | 469.0 KiB/s | 16.4 KiB | 00m00s [32/74] python3-rpm-macros-0:3.13-5.fc4 100% | 310.9 KiB/s | 11.2 KiB | 00m00s [33/74] mpdecimal-0:4.0.1-1.fc42.x86_64 100% | 466.6 KiB/s | 97.1 KiB | 00m00s [34/74] python3-idna-0:3.10-2.fc42.noar 100% | 2.9 MiB/s | 117.3 KiB | 00m00s [35/74] python3-cryptography-0:44.0.0-5 100% | 4.4 MiB/s | 1.4 MiB | 00m00s [36/74] python3-babel-0:2.17.0-3.fc42.n 100% | 32.4 MiB/s | 6.7 MiB | 00m00s [37/74] python3-imagesize-0:1.4.1-14.fc 100% | 563.4 KiB/s | 22.5 KiB | 00m00s [38/74] python3-jinja2-0:3.1.6-6.fc42.n 100% | 21.1 MiB/s | 475.6 KiB | 00m00s [39/74] python3-packaging-0:25.0-6.fc42 100% | 6.5 MiB/s | 145.9 KiB | 00m00s [40/74] python3-pygments-0:2.19.1-3.fc4 100% | 57.4 MiB/s | 2.4 MiB | 00m00s [41/74] python3-more-itertools-0:10.5.0 100% | 2.3 MiB/s | 118.8 KiB | 00m00s [42/74] python3-natsort-0:8.4.0-8.fc42. 100% | 2.1 MiB/s | 74.6 KiB | 00m00s [43/74] python3-typing-extensions-0:4.1 100% | 2.4 MiB/s | 93.4 KiB | 00m00s [44/74] python3-dateutil-1:2.9.0.post0- 100% | 16.2 MiB/s | 332.6 KiB | 00m00s [45/74] python3-pbr-0:7.0.1-1.fc42.noar 100% | 4.5 MiB/s | 193.3 KiB | 00m00s [46/74] python3-six-0:1.17.0-4.fc42.noa 100% | 3.7 MiB/s | 42.1 KiB | 00m00s [47/74] python3-charset-normalizer-0:3. 100% | 5.8 MiB/s | 106.2 KiB | 00m00s [48/74] python3-py-0:1.11.0-19.fc42.noa 100% | 6.6 MiB/s | 243.9 KiB | 00m00s [49/74] python3-iniconfig-0:2.1.0-1.fc4 100% | 2.4 MiB/s | 22.4 KiB | 00m00s [50/74] python3-urllib3-0:2.5.0-1.fc42. 100% | 3.9 MiB/s | 268.2 KiB | 00m00s [51/74] python3-pluggy-0:1.6.0-4.fc42.n 100% | 5.3 MiB/s | 54.2 KiB | 00m00s [52/74] python3-setuptools-0:78.1.1-6.f 100% | 52.8 MiB/s | 1.8 MiB | 00m00s [53/74] python3-tempora-0:5.8.0-4.fc42. 100% | 1.2 MiB/s | 38.5 KiB | 00m00s [54/74] python3-markupsafe-0:3.0.2-2.fc 100% | 812.6 KiB/s | 30.1 KiB | 00m00s [55/74] python3-build+virtualenv-0:1.2. 100% | 252.8 KiB/s | 9.6 KiB | 00m00s [56/74] python3-build-0:1.2.2-5.fc42.no 100% | 2.3 MiB/s | 58.8 KiB | 00m00s [57/74] python3-pyproject-hooks-0:1.2.0 100% | 335.6 KiB/s | 30.5 KiB | 00m00s [58/74] python3-cffi-0:2.0.0-1.fc42.x86 100% | 12.0 MiB/s | 307.9 KiB | 00m00s [59/74] python3-pycparser-0:2.22-1.fc42 100% | 2.6 MiB/s | 155.6 KiB | 00m00s [60/74] python3-virtualenv-0:20.35.4-2. 100% | 5.0 MiB/s | 256.4 KiB | 00m00s [61/74] less-0:679-1.fc42.x86_64 100% | 1.0 MiB/s | 195.3 KiB | 00m00s [62/74] openssh-clients-0:9.9p1-11.fc42 100% | 2.1 MiB/s | 767.0 KiB | 00m00s [63/74] libfido2-0:1.15.0-3.fc42.x86_64 100% | 1.4 MiB/s | 98.4 KiB | 00m00s [64/74] openssh-0:9.9p1-11.fc42.x86_64 100% | 1.9 MiB/s | 353.6 KiB | 00m00s [65/74] libcbor-0:0.11.0-3.fc42.x86_64 100% | 693.3 KiB/s | 33.3 KiB | 00m00s [66/74] python-setuptools-wheel-0:78.1. 100% | 35.0 MiB/s | 1.1 MiB | 00m00s [67/74] python3-distlib-0:0.4.0-2.fc42. 100% | 5.9 MiB/s | 260.2 KiB | 00m00s [68/74] python3-filelock-0:3.15.4-7.fc4 100% | 662.5 KiB/s | 38.4 KiB | 00m00s [69/74] python3-platformdirs-0:4.4.0-3. 100% | 2.3 MiB/s | 42.3 KiB | 00m00s [70/74] python3-ply-0:3.11-30.fc42.noar 100% | 3.4 MiB/s | 131.6 KiB | 00m00s [71/74] libedit-0:3.1-56.20251016cvs.fc 100% | 1.7 MiB/s | 105.1 KiB | 00m00s [72/74] python3-rpm-generators-0:14-12. 100% | 663.2 KiB/s | 29.2 KiB | 00m00s [73/74] git-core-0:2.51.1-1.fc42.x86_64 100% | 1.6 MiB/s | 5.0 MiB | 00m03s [74/74] python3-libs-0:3.13.9-1.fc42.x8 100% | 1.7 MiB/s | 9.2 MiB | 00m06s -------------------------------------------------------------------------------- [74/74] Total 100% | 7.0 MiB/s | 42.4 MiB | 00m06s Running transaction [ 1/76] Verify package files 100% | 459.0 B/s | 74.0 B | 00m00s [ 2/76] Prepare transaction 100% | 637.0 B/s | 74.0 B | 00m00s [ 3/76] Installing python-rpm-macros-0: 100% | 22.3 MiB/s | 22.8 KiB | 00m00s [ 4/76] Installing python3-rpm-macros-0 100% | 0.0 B/s | 6.7 KiB | 00m00s [ 5/76] Installing expat-0:2.7.2-1.fc42 100% | 17.3 MiB/s | 300.7 KiB | 00m00s [ 6/76] Installing python-pip-wheel-0:2 100% | 168.5 MiB/s | 1.2 MiB | 00m00s [ 7/76] Installing tzdata-0:2025b-1.fc4 100% | 25.2 MiB/s | 1.9 MiB | 00m00s [ 8/76] Installing pyproject-rpm-macros 100% | 57.1 MiB/s | 116.8 KiB | 00m00s [ 9/76] Installing libedit-0:3.1-56.202 100% | 118.1 MiB/s | 241.9 KiB | 00m00s [10/76] Installing python-setuptools-wh 100% | 573.9 MiB/s | 1.1 MiB | 00m00s [11/76] Installing libcbor-0:0.11.0-3.f 100% | 77.3 MiB/s | 79.2 KiB | 00m00s [12/76] Installing libfido2-0:1.15.0-3. 100% | 119.0 MiB/s | 243.6 KiB | 00m00s [13/76] Installing openssh-0:9.9p1-11.f 100% | 69.1 MiB/s | 1.4 MiB | 00m00s [14/76] Installing openssh-clients-0:9. 100% | 73.1 MiB/s | 2.7 MiB | 00m00s [15/76] Installing less-0:679-1.fc42.x8 100% | 21.0 MiB/s | 409.4 KiB | 00m00s [16/76] Installing git-core-0:2.51.1-1. 100% | 266.1 MiB/s | 23.7 MiB | 00m00s [17/76] Installing mpdecimal-0:4.0.1-1. 100% | 106.8 MiB/s | 218.8 KiB | 00m00s [18/76] Installing libb2-0:0.98.1-13.fc 100% | 7.7 MiB/s | 47.2 KiB | 00m00s [19/76] Installing python3-libs-0:3.13. 100% | 201.4 MiB/s | 40.5 MiB | 00m00s [20/76] Installing python3-0:3.13.9-1.f 100% | 2.0 MiB/s | 30.5 KiB | 00m00s [21/76] Installing python3-packaging-0: 100% | 112.4 MiB/s | 575.6 KiB | 00m00s [22/76] Installing python3-idna-0:3.10- 100% | 154.9 MiB/s | 634.3 KiB | 00m00s [23/76] Installing python3-urllib3-0:2. 100% | 103.4 MiB/s | 1.0 MiB | 00m00s [24/76] Installing python3-docutils-0:0 100% | 97.8 MiB/s | 5.0 MiB | 00m00s [25/76] Installing python3-jaraco-conte 100% | 12.1 MiB/s | 37.2 KiB | 00m00s [26/76] Installing python3-pygments-0:2 100% | 136.3 MiB/s | 11.0 MiB | 00m00s [27/76] Installing python3-more-itertoo 100% | 213.3 MiB/s | 655.4 KiB | 00m00s [28/76] Installing python3-jaraco-funct 100% | 36.4 MiB/s | 74.5 KiB | 00m00s [29/76] Installing python3-six-0:1.17.0 100% | 116.6 MiB/s | 119.4 KiB | 00m00s [30/76] Installing python3-dateutil-1:2 100% | 106.6 MiB/s | 872.9 KiB | 00m00s [31/76] Installing python3-setuptools-0 100% | 127.0 MiB/s | 8.8 MiB | 00m00s [32/76] Installing python3-pbr-0:7.0.1- 100% | 24.6 MiB/s | 706.4 KiB | 00m00s [33/76] Installing python3-py-0:1.11.0- 100% | 88.3 MiB/s | 994.5 KiB | 00m00s [34/76] Installing python3-tempora-0:5. 100% | 5.6 MiB/s | 91.0 KiB | 00m00s [35/76] Installing python3-rpm-generato 100% | 81.0 MiB/s | 82.9 KiB | 00m00s [36/76] Installing python3-sphinx-theme 100% | 22.7 MiB/s | 46.4 KiB | 00m00s [37/76] Installing python3-autocommand- 100% | 44.6 MiB/s | 91.4 KiB | 00m00s [38/76] Installing python3-snowballstem 100% | 156.5 MiB/s | 1.7 MiB | 00m00s [39/76] Installing python3-babel-0:2.17 100% | 218.7 MiB/s | 30.4 MiB | 00m00s [40/76] Installing python3-imagesize-0: 100% | 18.8 MiB/s | 38.5 KiB | 00m00s [41/76] Installing python3-natsort-0:8. 100% | 13.3 MiB/s | 259.1 KiB | 00m00s [42/76] Installing python3-typing-exten 100% | 149.9 MiB/s | 460.6 KiB | 00m00s [43/76] Installing python3-domdf-python 100% | 101.1 MiB/s | 620.9 KiB | 00m00s [44/76] Installing python3-charset-norm 100% | 18.6 MiB/s | 342.5 KiB | 00m00s [45/76] Installing python3-requests-0:2 100% | 94.7 MiB/s | 484.9 KiB | 00m00s [46/76] Installing python3-iniconfig-0: 100% | 19.7 MiB/s | 40.4 KiB | 00m00s [47/76] Installing python3-pluggy-0:1.6 100% | 48.1 MiB/s | 197.2 KiB | 00m00s [48/76] Installing python3-pytest-0:8.3 100% | 218.9 MiB/s | 21.2 MiB | 00m00s [49/76] Installing python3-markupsafe-0 100% | 29.2 MiB/s | 59.9 KiB | 00m00s [50/76] Installing python3-jinja2-0:3.1 100% | 194.3 MiB/s | 2.9 MiB | 00m00s [51/76] Installing python3-sphinx-1:8.1 100% | 106.9 MiB/s | 11.3 MiB | 00m00s [52/76] Installing python3-pyproject-ho 100% | 34.3 MiB/s | 70.2 KiB | 00m00s [53/76] Installing python3-build-0:1.2. 100% | 8.3 MiB/s | 143.7 KiB | 00m00s [54/76] Installing python3-distlib-0:0. 100% | 195.7 MiB/s | 1.2 MiB | 00m00s [55/76] Installing python3-filelock-0:3 100% | 47.1 MiB/s | 96.6 KiB | 00m00s [56/76] Installing python3-platformdirs 100% | 56.4 MiB/s | 173.2 KiB | 00m00s [57/76] Installing python3-virtualenv-0 100% | 21.1 MiB/s | 757.8 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% | 185.7 MiB/s | 570.5 KiB | 00m00s [60/76] Installing python3-pycparser-0: 100% | 147.9 MiB/s | 908.7 KiB | 00m00s [61/76] Installing python3-cffi-0:2.0.0 100% | 168.7 MiB/s | 1.3 MiB | 00m00s [62/76] Installing python3-cryptography 100% | 142.4 MiB/s | 5.1 MiB | 00m00s [63/76] Installing python3-pyOpenSSL-0: 100% | 136.0 MiB/s | 696.1 KiB | 00m00s [64/76] Installing python3-trustme-0:1. 100% | 37.4 MiB/s | 76.5 KiB | 00m00s [65/76] Installing python3-jaraco-packa 100% | 16.2 MiB/s | 33.2 KiB | 00m00s [66/76] Installing python3-sphinx-tabs- 100% | 28.0 MiB/s | 57.3 KiB | 00m00s [67/76] Installing python3-sphinxcontri 100% | 18.9 MiB/s | 38.7 KiB | 00m00s [68/76] Installing python3-pytest-forke 100% | 11.6 MiB/s | 23.7 KiB | 00m00s [69/76] Installing python3-pytest-mock- 100% | 39.2 MiB/s | 120.4 KiB | 00m00s [70/76] Installing python3-pytest-rerun 100% | 41.9 MiB/s | 85.8 KiB | 00m00s [71/76] Installing python3-requests-too 100% | 44.8 MiB/s | 321.0 KiB | 00m00s [72/76] Installing python3-requests-uni 100% | 26.8 MiB/s | 54.8 KiB | 00m00s [73/76] Installing python3-jaraco-text- 100% | 20.2 MiB/s | 62.2 KiB | 00m00s [74/76] Installing python3-devel-0:3.13 100% | 59.0 MiB/s | 1.8 MiB | 00m00s [75/76] Installing python3-portend-0:3. 100% | 12.8 MiB/s | 26.1 KiB | 00m00s [76/76] Installing python3-rst-linker-0 100% | 504.9 KiB/s | 26.8 KiB | 00m00s Warning: skipped OpenPGP checks for 44 packages from repository: copr_base Complete! Finish: build setup for python-cheroot-11.1.1-2.fc42.src.rpm Start: rpmbuild python-cheroot-11.1.1-2.fc42.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762300800 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.KGfs9d Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.M3hpsp + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + rm -rf cheroot-11.1.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/cheroot-11.1.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd cheroot-11.1.1 + /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.nXpm67 + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd cheroot-11.1.1 + 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.1-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-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir + RPM_TOXENV=py313 + FEDORA=42 + 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.1-build/pyproject-wheeldir --output /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.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.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.1-2.fc42.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Copr repository 100% | 48.0 KiB/s | 1.5 KiB | 00m00s fedora 100% | 332.1 KiB/s | 31.9 KiB | 00m00s updates 100% | 527.0 KiB/s | 31.1 KiB | 00m00s Repositories loaded. Package "pyproject-rpm-macros-1.18.4-1.fc42.noarch" is already installed. Package "python3-devel-3.13.9-1.fc42.x86_64" is already installed. Package "python3-pyOpenSSL-25.1.0-1.fc42.noarch" is already installed. Package "python3-sphinx-tabs-3.4.7-6.fc42.noarch" is already installed. Package "python3-sphinx-theme-alabaster-0.7.16-7.fc42.noarch" is already installed. Package "python3-sphinxcontrib-apidoc-0.6.0-3.fc42.noarch" is already installed. Package "python3-docutils-0.21.2-2.fc42.noarch" is already installed. Package "python3-jaraco-functools-4.1.0-2.fc42.noarch" is already installed. Package "python3-jaraco-packaging-10.2.3-6.fc42.noarch" is already installed. Package "python3-jaraco-text-4.0.0-7.fc42.noarch" is already installed. Package "python3-packaging-25.0-6.fc42.noarch" is already installed. Package "python3-portend-3.2.0-11.fc42.noarch" is already installed. Package "python3-pytest-8.3.5-10.fc42.noarch" is already installed. Package "python3-pytest-forked-1.6.0-13.fc42.noarch" is already installed. Package "python3-pytest-mock-3.14.1-4.fc42.noarch" is already installed. Package "python3-pytest-rerunfailures-15.0-6.fc42.noarch" is already installed. Package "python3-requests-2.32.5-1.fc42.noarch" is already installed. Package "python3-requests-toolbelt-1.0.0-14.fc42.noarch" is already installed. Package "python3-requests-unixsocket-0.4.0-15.fc42.noarch" is already installed. Package "python3-rst-linker-2.4.0-16.fc42.noarch" is already installed. Package "python3-setuptools-78.1.1-6.fc42~bootstrap.noarch" is already installed. Package "python3-sphinx-1:8.1.3-2.fc42.noarch" is already installed. Package "python3-trustme-1.2.0-2.fc42.noarch" is already installed. Package Arch Version Repository Size Installing: python3-pip noarch 25.2-5.fc42 copr_base 10.4 MiB python3-setuptools_scm noarch 8.3.1-5.fc42 copr_base 320.3 KiB Transaction Summary: Installing: 2 packages Total size of inbound packages is 2 MiB. Need to download 2 MiB. After this operation, 11 MiB extra will be used (install 11 MiB, remove 0 B). [1/2] python3-setuptools_scm-0:8.3.1-5. 100% | 1.3 MiB/s | 102.4 KiB | 00m00s [2/2] python3-pip-0:25.2-5.fc42.noarch 100% | 16.5 MiB/s | 2.3 MiB | 00m00s -------------------------------------------------------------------------------- [2/2] Total 100% | 17.1 MiB/s | 2.4 MiB | 00m00s Running transaction [1/4] Verify package files 100% | 200.0 B/s | 2.0 B | 00m00s [2/4] Prepare transaction 100% | 57.0 B/s | 2.0 B | 00m00s [3/4] Installing python3-setuptools_scm 100% | 36.9 MiB/s | 340.3 KiB | 00m00s [4/4] Installing python3-pip-0:25.2-5.f 100% | 79.9 MiB/s | 10.7 MiB | 00m00s Warning: skipped OpenPGP checks for 2 packages from repository: copr_base Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762300800 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.7OWK2m + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd cheroot-11.1.1 + 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.1-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-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir + RPM_TOXENV=py313 + FEDORA=42 + 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.1-build/pyproject-wheeldir --output /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.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.13/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.13/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.13/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.13/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.13/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.13/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.13/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.13/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.1-build/cheroot-11.1.1/cheroot-11.1.1.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.1.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.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-buildrequires + rm -rfv cheroot-11.1.1.dist-info/ removed 'cheroot-11.1.1.dist-info/licenses/LICENSE.md' removed directory 'cheroot-11.1.1.dist-info/licenses' removed 'cheroot-11.1.1.dist-info/METADATA' removed 'cheroot-11.1.1.dist-info/entry_points.txt' removed 'cheroot-11.1.1.dist-info/top_level.txt' removed directory 'cheroot-11.1.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-cheroot-11.1.1-2.fc42.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Copr repository 100% | 51.2 KiB/s | 1.5 KiB | 00m00s fedora 100% | 332.1 KiB/s | 31.9 KiB | 00m00s updates 100% | 518.2 KiB/s | 31.1 KiB | 00m00s Repositories loaded. Package "pyproject-rpm-macros-1.18.4-1.fc42.noarch" is already installed. Package "python3-devel-3.13.9-1.fc42.x86_64" is already installed. Package "python3-pyOpenSSL-25.1.0-1.fc42.noarch" is already installed. Package "python3-sphinx-tabs-3.4.7-6.fc42.noarch" is already installed. Package "python3-sphinx-theme-alabaster-0.7.16-7.fc42.noarch" is already installed. Package "python3-sphinxcontrib-apidoc-0.6.0-3.fc42.noarch" is already installed. Package "python3-docutils-0.21.2-2.fc42.noarch" is already installed. Package "python3-jaraco-functools-4.1.0-2.fc42.noarch" is already installed. Package "python3-jaraco-packaging-10.2.3-6.fc42.noarch" is already installed. Package "python3-jaraco-text-4.0.0-7.fc42.noarch" is already installed. Package "python3-more-itertools-10.5.0-4.fc42.noarch" is already installed. Package "python3-packaging-25.0-6.fc42.noarch" is already installed. Package "python3-pip-25.2-5.fc42.noarch" is already installed. Package "python3-portend-3.2.0-11.fc42.noarch" is already installed. Package "python3-pytest-8.3.5-10.fc42.noarch" is already installed. Package "python3-pytest-forked-1.6.0-13.fc42.noarch" is already installed. Package "python3-pytest-mock-3.14.1-4.fc42.noarch" is already installed. Package "python3-pytest-rerunfailures-15.0-6.fc42.noarch" is already installed. Package "python3-requests-2.32.5-1.fc42.noarch" is already installed. Package "python3-requests-toolbelt-1.0.0-14.fc42.noarch" is already installed. Package "python3-requests-unixsocket-0.4.0-15.fc42.noarch" is already installed. Package "python3-rst-linker-2.4.0-16.fc42.noarch" is already installed. Package "python3-setuptools-78.1.1-6.fc42~bootstrap.noarch" is already installed. Package "python3-setuptools_scm-8.3.1-5.fc42.noarch" is already installed. Package "python3-sphinx-1:8.1.3-2.fc42.noarch" is already installed. Package "python3-trustme-1.2.0-2.fc42.noarch" is already installed. Nothing to do. Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1762300800 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.77EMlC + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd cheroot-11.1.1 + 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.1-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-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir + RPM_TOXENV=py313 + FEDORA=42 + 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.1-build/pyproject-wheeldir --output /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.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.13/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.13/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.13/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.13/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.13/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.13/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.13/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.13/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.1-build/cheroot-11.1.1/cheroot-11.1.1.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.1.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.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-buildrequires + rm -rfv cheroot-11.1.1.dist-info/ removed 'cheroot-11.1.1.dist-info/licenses/LICENSE.md' removed directory 'cheroot-11.1.1.dist-info/licenses' removed 'cheroot-11.1.1.dist-info/METADATA' removed 'cheroot-11.1.1.dist-info/top_level.txt' removed 'cheroot-11.1.1.dist-info/entry_points.txt' removed directory 'cheroot-11.1.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.49g1VN + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-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-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.1 + mkdir -p /builddir/build/BUILD/python-cheroot-11.1.1-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-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.1-build/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-cheroot-11.1.1-build/pyproject-wheeldir Processing /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) /usr/lib/python3.13/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.13/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.13/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.13/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.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info writing /builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/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.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info/SOURCES.txt' adding license file 'LICENSE.md' writing manifest file '/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-modern-metadata-a_mkdppr/cheroot-11.1.1.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.13/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.13/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.13/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.13/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/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 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 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 running install_egg_info Copying cheroot.egg-info to build/bdist.linux-x86_64/wheel/./cheroot-11.1.1-py3.13.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/cheroot-11.1.1.dist-info/WHEEL creating '/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir/pip-wheel-b62qtgk3/.tmp-bjd2wjsk/cheroot-11.1.1-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.1.dist-info/licenses/LICENSE.md' adding 'cheroot-11.1.1.dist-info/METADATA' adding 'cheroot-11.1.1.dist-info/WHEEL' adding 'cheroot-11.1.1.dist-info/entry_points.txt' adding 'cheroot-11.1.1.dist-info/top_level.txt' adding 'cheroot-11.1.1.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.1-py3-none-any.whl size=108120 sha256=fb9284a3fecec0e7d1b0aabfd6e897f25ae0666f6028285d5d4defaf0b0e0bc0 Stored in directory: /builddir/.cache/pip/wheels/0e/c7/f4/d20040449fc1fde359686367b6867ceae863918c2b28ae82e3 Successfully built cheroot + sphinx-build -vvv docs html Running Sphinx v8.1.3 loading translations [en]... locale_dir /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/locales/en/LC_MESSAGES does not exist locale_dir /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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 0x7fca8140be20>, '', ()) [app] adding config value: ('epub_version', 3.0, 'epub', ()) [app] adding config value: ('epub_theme', 'epub', 'epub', ()) [app] adding config value: ('epub_theme_options', {}, 'epub', ()) [app] adding config value: ('epub_title', . at 0x7fca80c4ccc0>, 'epub', ()) [app] adding config value: ('epub_author', . at 0x7fca80c4ce00>, 'epub', ()) [app] adding config value: ('epub_language', . at 0x7fca80c4cf40>, 'epub', ()) [app] adding config value: ('epub_publisher', . at 0x7fca80c4d080>, 'epub', ()) [app] adding config value: ('epub_copyright', . at 0x7fca80c4d120>, 'epub', ()) [app] adding config value: ('epub_identifier', 'unknown', 'epub', ()) [app] adding config value: ('epub_scheme', 'unknown', 'epub', ()) [app] adding config value: ('epub_uid', 'unknown', 'env', ()) [app] adding config value: ('epub_cover', (), 'env', ()) [app] adding config value: ('epub_guide', (), 'env', ()) [app] adding config value: ('epub_pre_files', [], 'env', ()) [app] adding config value: ('epub_post_files', [], 'env', ()) [app] adding config value: ('epub_css_files', . at 0x7fca8128ea20>, 'epub', ()) [app] adding config value: ('epub_exclude_files', [], 'env', ()) [app] adding config value: ('epub_tocdepth', 3, 'env', ()) [app] adding config value: ('epub_tocdup', True, 'env', ()) [app] adding config value: ('epub_tocscope', 'default', 'env', ()) [app] adding config value: ('epub_fix_images', False, 'env', ()) [app] adding config value: ('epub_max_image_width', 0, 'env', ()) [app] adding config value: ('epub_show_urls', 'inline', 'epub', ()) [app] adding config value: ('epub_use_index', . at 0x7fca80c4d300>, 'epub', ()) [app] adding config value: ('epub_description', 'unknown', 'epub', ()) [app] adding config value: ('epub_contributor', 'unknown', 'epub', ()) [app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', ) [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', ()) [app] adding config value: ('html_theme_path', [], 'html', ()) [app] adding config value: ('html_theme_options', {}, 'html', ()) [app] adding config value: ('html_title', . at 0x7fca80c4cfe0>, 'html', ) [app] adding config value: ('html_short_title', . at 0x7fca80c4d260>, 'html', ()) [app] adding config value: ('html_style', None, 'html', {, }) [app] adding config value: ('html_logo', None, 'html', ) [app] adding config value: ('html_favicon', None, 'html', ) [app] adding config value: ('html_css_files', [], 'html', ()) [app] adding config value: ('html_js_files', [], 'html', ()) [app] adding config value: ('html_static_path', [], 'html', ()) [app] adding config value: ('html_extra_path', [], 'html', ()) [app] adding config value: ('html_last_updated_fmt', None, 'html', ) [app] adding config value: ('html_last_updated_use_utc', False, 'html', {}) [app] adding config value: ('html_sidebars', {}, 'html', ()) [app] adding config value: ('html_additional_pages', {}, 'html', ()) [app] adding config value: ('html_domain_indices', True, 'html', {, }) [app] adding config value: ('html_permalinks', True, 'html', ()) [app] adding config value: ('html_permalinks_icon', '¶', 'html', ()) [app] adding config value: ('html_use_index', True, 'html', ()) [app] adding config value: ('html_split_index', False, 'html', ()) [app] adding config value: ('html_copy_source', True, 'html', ()) [app] adding config value: ('html_show_sourcelink', True, 'html', ()) [app] adding config value: ('html_sourcelink_suffix', '.txt', 'html', ()) [app] adding config value: ('html_use_opensearch', '', 'html', ()) [app] adding config value: ('html_file_suffix', None, 'html', ) [app] adding config value: ('html_link_suffix', None, 'html', ) [app] adding config value: ('html_show_copyright', True, 'html', ()) [app] adding config value: ('html_show_search_summary', True, 'html', ()) [app] adding config value: ('html_show_sphinx', True, 'html', ()) [app] adding config value: ('html_context', {}, 'html', ()) [app] adding config value: ('html_output_encoding', 'utf-8', 'html', ()) [app] adding config value: ('html_compact_lists', True, 'html', ()) [app] adding config value: ('html_secnumber_suffix', '. ', 'html', ()) [app] adding config value: ('html_search_language', None, 'html', ) [app] adding config value: ('html_search_options', {}, 'html', ()) [app] adding config value: ('html_search_scorer', '', '', ()) [app] adding config value: ('html_scaled_image_link', True, 'html', ()) [app] adding config value: ('html_baseurl', '', 'html', ()) [app] adding config value: ('html_codeblock_linenos_style', 'inline', 'html', ) [app] adding config value: ('html_math_renderer', None, 'env', ()) [app] adding config value: ('html4_writer', False, 'html', ()) [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', ()) [app] adding config value: ('mathjax_options', {}, 'html', ()) [app] adding config value: ('mathjax_inline', ['\\(', '\\)'], 'html', ()) [app] adding config value: ('mathjax_display', ['\\[', '\\]'], 'html', ()) [app] adding config value: ('mathjax_config', None, 'html', ()) [app] adding config value: ('mathjax2_config', . at 0x7fca80c4d9e0>, 'html', ()) [app] adding config value: ('mathjax3_config', None, 'html', ()) [app] connecting event 'html-page-context' (500): [id=12] [app] setting up extension: 'sphinx.builders.html.transforms' [app] adding post transform: [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', {, }) [app] adding config value: ('gettext_location', True, 'gettext', ()) [app] adding config value: ('gettext_uuid', False, 'gettext', ()) [app] adding config value: ('gettext_auto_build', True, 'env', ()) [app] adding config value: ('gettext_additional_targets', [], 'env', {, }) [app] adding config value: ('gettext_last_translator', 'FULL NAME ', 'gettext', ()) [app] adding config value: ('gettext_language_team', 'LANGUAGE ', 'gettext', ()) [app] connecting event 'config-inited' (800): [id=13] [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=14] [app] connecting event 'config-inited' (800): [id=15] [app] connecting event 'builder-inited' (500): [id=16] [app] adding config value: ('latex_engine', , '', ) [app] adding config value: ('latex_documents', , '', ()) [app] adding config value: ('latex_logo', None, '', ) [app] adding config value: ('latex_appendices', [], '', ()) [app] adding config value: ('latex_use_latex_multicolumn', False, '', ()) [app] adding config value: ('latex_use_xindy', , '', ) [app] adding config value: ('latex_toplevel_sectioning', None, '', ) [app] adding config value: ('latex_domain_indices', True, '', {, }) [app] adding config value: ('latex_show_urls', 'no', '', ()) [app] adding config value: ('latex_show_pagerefs', False, '', ()) [app] adding config value: ('latex_elements', {}, '', ()) [app] adding config value: ('latex_additional_files', [], '', ()) [app] adding config value: ('latex_table_style', ['booktabs', 'colorrows'], '', ) [app] adding config value: ('latex_theme', 'manual', '', ) [app] adding config value: ('latex_theme_options', {}, '', ()) [app] adding config value: ('latex_theme_path', [], '', ) [app] adding config value: ('latex_docclass', , '', ()) [app] setting up extension: 'sphinx.builders.linkcheck' [app] adding builder: [app] adding post transform: [app] adding config value: ('linkcheck_ignore', [], '', ()) [app] adding config value: ('linkcheck_exclude_documents', [], '', ()) [app] adding config value: ('linkcheck_allowed_redirects', {}, '', ()) [app] adding config value: ('linkcheck_auth', [], '', ()) [app] adding config value: ('linkcheck_request_headers', {}, '', ()) [app] adding config value: ('linkcheck_retries', 1, '', ()) [app] adding config value: ('linkcheck_timeout', 30, '', (, )) [app] adding config value: ('linkcheck_workers', 5, '', ()) [app] adding config value: ('linkcheck_anchors', True, '', ()) [app] adding config value: ('linkcheck_anchors_ignore', ['^!'], '', ()) [app] adding config value: ('linkcheck_anchors_ignore_for_url', (), '', (, )) [app] adding config value: ('linkcheck_rate_limit_timeout', 300.0, '', (, )) [app] adding config value: ('linkcheck_allow_unauthorized', False, '', ()) [app] adding config value: ('linkcheck_report_timeouts_as_broken', False, '', ) [app] adding event: 'linkcheck-process-uri' [app] connecting event 'config-inited' (800): [id=17] [app] setting up extension: 'sphinx.builders.manpage' [app] adding builder: [app] adding config value: ('man_pages', , '', ()) [app] adding config value: ('man_show_urls', False, '', ()) [app] adding config value: ('man_make_section_directory', False, '', ()) [app] setting up extension: 'sphinx.builders.singlehtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('singlehtml_sidebars', . at 0x7fca80c4cd60>, 'html', ()) [app] setting up extension: 'sphinx.builders.texinfo' [app] adding builder: [app] adding config value: ('texinfo_documents', , '', ()) [app] adding config value: ('texinfo_appendices', [], '', ()) [app] adding config value: ('texinfo_elements', {}, '', ()) [app] adding config value: ('texinfo_domain_indices', True, '', {, }) [app] adding config value: ('texinfo_show_urls', 'footnote', '', ()) [app] adding config value: ('texinfo_no_detailmenu', False, '', ()) [app] adding config value: ('texinfo_cross_references', True, '', ()) [app] setting up extension: 'sphinx.builders.text' [app] adding builder: [app] adding config value: ('text_sectionchars', '*=-~"+`', 'env', ()) [app] adding config value: ('text_newlines', 'unix', 'env', ()) [app] adding config value: ('text_add_secnumbers', True, 'env', ()) [app] adding config value: ('text_secnumber_suffix', '. ', 'env', ()) [app] setting up extension: 'sphinx.builders.xml' [app] adding builder: [app] adding builder: [app] adding config value: ('xml_pretty', True, 'env', ()) [app] setting up extension: 'sphinx.config' [app] connecting event 'config-inited' (800): [id=18] [app] connecting event 'config-inited' (800): [id=19] [app] connecting event 'config-inited' (800): [id=20] [app] connecting event 'config-inited' (795): [id=21] [app] connecting event 'config-inited' (800): [id=22] [app] connecting event 'config-inited' (800): [id=23] [app] connecting event 'config-inited' (800): [id=24] [app] connecting event 'env-get-outdated' (500): [id=25] [app] setting up extension: 'sphinx.domains.c' [app] adding domain: [app] adding config value: ('c_id_attributes', [], 'env', {, }) [app] adding config value: ('c_paren_attributes', [], 'env', {, }) [app] adding config value: ('c_extra_keywords', ['alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert', 'thread_local'], 'env', {, }) [app] adding config value: ('c_maximum_signature_line_length', None, 'env', {None, }) [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', ()) [app] adding config value: ('cpp_id_attributes', [], 'env', {, }) [app] adding config value: ('cpp_paren_attributes', [], 'env', {, }) [app] adding config value: ('cpp_maximum_signature_line_length', None, 'env', {None, }) [app] adding post transform: [app] adding config value: ('cpp_debug_lookup', False, '', ()) [app] adding config value: ('cpp_debug_show_tree', False, '', ()) [app] connecting event 'builder-inited' (500): .initStuff at 0x7fca8067efc0> [id=26] [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', {, }) [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', ()) [app] adding event: 'object-description-transform' [app] adding domain: [app] adding config value: ('python_use_unqualified_type_names', False, 'env', ()) [app] adding config value: ('python_maximum_signature_line_length', None, 'env', {, }) [app] adding config value: ('python_display_short_literal_types', False, 'env', ()) [app] connecting event 'object-description-transform' (500): [id=27] [app] connecting event 'missing-reference' (900): [id=28] [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=29] [app] setting up extension: 'sphinx.directives' [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=30] [app] setting up extension: 'sphinx.parsers' [app] adding search source_parser: [app] setting up extension: 'sphinx.registry' [app] connecting event 'config-inited' (800): [id=31] [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=32] [app] connecting event 'env-merge-info' (500): > [id=33] [app] connecting event 'env-purge-doc' (500): > [id=34] [app] connecting event 'env-get-updated' (500): > [id=35] [app] connecting event 'env-get-outdated' (500): > [id=36] [app] setting up extension: 'sphinx.environment.collectors.asset' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=37] [app] connecting event 'env-merge-info' (500): > [id=38] [app] connecting event 'env-purge-doc' (500): > [id=39] [app] connecting event 'env-get-updated' (500): > [id=40] [app] connecting event 'env-get-outdated' (500): > [id=41] [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=42] [app] connecting event 'env-merge-info' (500): > [id=43] [app] connecting event 'env-purge-doc' (500): > [id=44] [app] connecting event 'env-get-updated' (500): > [id=45] [app] connecting event 'env-get-outdated' (500): > [id=46] [app] setting up extension: 'sphinx.environment.collectors.metadata' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=47] [app] connecting event 'env-merge-info' (500): > [id=48] [app] connecting event 'env-purge-doc' (500): > [id=49] [app] connecting event 'env-get-updated' (500): > [id=50] [app] connecting event 'env-get-outdated' (500): > [id=51] [app] setting up extension: 'sphinx.environment.collectors.title' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=52] [app] connecting event 'env-merge-info' (500): > [id=53] [app] connecting event 'env-purge-doc' (500): > [id=54] [app] connecting event 'env-get-updated' (500): > [id=55] [app] connecting event 'env-get-outdated' (500): > [id=56] [app] setting up extension: 'sphinx.environment.collectors.toctree' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=57] [app] connecting event 'env-merge-info' (500): > [id=58] [app] connecting event 'env-purge-doc' (500): > [id=59] [app] connecting event 'env-get-updated' (500): > [id=60] [app] connecting event 'env-get-outdated' (500): > [id=61] [app] setting up extension: 'alabaster' [app] adding HTML theme: 'alabaster', '/usr/lib/python3.13/site-packages/alabaster' [app] connecting event 'html-page-context' (500): [id=62] [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', ) [app] adding config value: ('autodoc_member_order', 'alphabetical', 'env', ) [app] adding config value: ('autodoc_class_signature', 'mixed', 'env', ) [app] adding config value: ('autodoc_default_options', {}, 'env', ()) [app] adding config value: ('autodoc_docstring_signature', True, 'env', ()) [app] adding config value: ('autodoc_mock_imports', [], 'env', ()) [app] adding config value: ('autodoc_typehints', 'signature', 'env', ) [app] adding config value: ('autodoc_typehints_description_target', 'all', 'env', ) [app] adding config value: ('autodoc_type_aliases', {}, 'env', ()) [app] adding config value: ('autodoc_typehints_format', 'short', 'env', ) [app] adding config value: ('autodoc_warningiserror', True, 'env', ()) [app] adding config value: ('autodoc_inherit_docstrings', True, 'env', ()) [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', ()) [app] connecting event 'autodoc-before-process-signature' (500): [id=63] [app] setting up extension: 'sphinx.ext.autodoc.type_comment' [app] connecting event 'autodoc-before-process-signature' (500): [id=64] [app] setting up extension: 'sphinx.ext.autodoc.typehints' [app] connecting event 'autodoc-process-signature' (500): [id=65] [app] connecting event 'object-description-transform' (500): [id=66] [app] setting up extension: 'sphinx.ext.autosectionlabel' [app] adding config value: ('autosectionlabel_prefix_document', False, 'env', ()) [app] adding config value: ('autosectionlabel_maxdepth', None, 'env', ()) [app] connecting event 'doctree-read' (500): [id=67] [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, '', ) [app] adding config value: ('doctest_path', [], '', ()) [app] adding config value: ('doctest_test_doctest_blocks', 'default', '', ()) [app] adding config value: ('doctest_global_setup', '', '', ()) [app] adding config value: ('doctest_global_cleanup', '', '', ()) [app] adding config value: ('doctest_default_flags', 41, '', ()) [app] setting up extension: 'sphinx.ext.extlinks' [app] adding config value: ('extlinks', {}, 'env', ()) [app] adding config value: ('extlinks_detect_hardcoded_links', False, 'env', ()) [app] connecting event 'builder-inited' (500): [id=68] [app] adding post transform: [app] setting up extension: 'sphinx.ext.intersphinx' [app] adding config value: ('intersphinx_mapping', {}, 'env', ()) [app] adding config value: ('intersphinx_cache_limit', 5, '', ()) [app] adding config value: ('intersphinx_timeout', None, '', ()) [app] adding config value: ('intersphinx_disabled_reftypes', ['std:doc'], 'env', ()) [app] connecting event 'config-inited' (800): [id=69] [app] connecting event 'builder-inited' (500): [id=70] [app] connecting event 'source-read' (500): [id=71] [app] connecting event 'missing-reference' (500): [id=72] [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 0x7fca805b87c0> [id=73] [app] connecting event 'html-page-context' (500): [id=74] [app] setting up extension: 'sphinxcontrib.apidoc' [app] setting up extension: 'sphinx.ext.autodoc' [app] connecting event 'builder-inited' (500): [id=75] [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=2, 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=['alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert', 'thread_local'], 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, strip_signature_backslash=False, python_use_unqualified_type_names=False, python_maximum_signature_line_length=None, 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, 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_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.1-build/cheroot-11.1.1/docs/locales/en/LC_MESSAGES does not exist [app] emitting event: 'builder-inited'() [app] adding role: ('issue', .role at 0x7fca80362ca0>) [app] adding role: ('pr', .role at 0x7fca80363380>) [app] adding role: ('commit', .role at 0x7fca803a0ae0>) [app] adding role: ('cp-issue', .role at 0x7fca803a0b80>) [app] adding role: ('cp-pr', .role at 0x7fca803a0c20>) [app] adding role: ('gh', .role at 0x7fca803a0cc0>) [app] adding role: ('user', .role at 0x7fca803a0d60>) loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... loading intersphinx inventory 'python2' from https://docs.python.org/2/objects.inv ... 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)")) loading intersphinx inventory 'cherrypy' from https://cherrypy.rtfd.io/en/latest ... 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 'ddt' from https://ddt.readthedocs.io/en/latest/objects.inv ... 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://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)")) loading intersphinx inventory 'trustme' from https://trustme.readthedocs.io/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://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)")) 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://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)")) Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.__main__.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot._compat.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.cli.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.connections.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.errors.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.makefile.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.server.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.testing.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.wsgi.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.ssl.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.ssl.builtin.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.ssl.pyopenssl.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test._pytest_plugin.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.conftest.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.helper.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test__compat.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_cli.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_conn.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_core.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_dispatch.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_errors.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_makefile.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_server.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_ssl.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_wsgi.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.webtest.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.workers.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.workers.threadpool.rst. Creating file /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/modules.rst. locale_dir /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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: 'contributing/release_guide' [build target] did not in env: 'contributing/guidelines' [build target] did not in env: 'index' [build target] did not in env: 'history' [build target] did not in env: 'devguide' building [html]: targets for 5 source files that are out of date updating environment: locale_dir /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/locales/en/LC_MESSAGES does not exist [app] emitting event: 'env-get-outdated'(, {'pkg/cheroot.test.test_cli', 'pkg/cheroot.testing', 'history', 'pkg/cheroot.test.test_makefile', 'pkg/cheroot.test._pytest_plugin', 'devguide', 'pkg/cheroot.connections', 'contributing/release_guide', 'pkg/cheroot.test.test_ssl', 'pkg/cheroot.cli', 'pkg/cheroot.test.test_conn', 'pkg/cheroot.errors', 'pkg/cheroot.server', 'pkg/cheroot.test.webtest', 'pkg/cheroot.workers.threadpool', 'pkg/modules', 'pkg/cheroot.test.conftest', 'contributing/guidelines', 'pkg/cheroot.test.test__compat', 'pkg/cheroot.test.test_wsgi', 'index', 'pkg/cheroot.workers', 'pkg/cheroot.ssl.builtin', 'pkg/cheroot.test', 'pkg/cheroot.test.test_core', 'pkg/cheroot.__main__', 'pkg/cheroot.wsgi', 'pkg/cheroot.ssl.pyopenssl', 'pkg/cheroot.makefile', 'pkg/cheroot.test.test_dispatch', 'pkg/cheroot.test.test_errors', 'pkg/cheroot.test.test_server', 'pkg/cheroot.test.helper', 'pkg/cheroot', 'pkg/cheroot.ssl', 'pkg/cheroot._compat'}, 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.1-build/cheroot-11.1.1/.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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/docs/history.rst:9: section "Change log" gets labeled as "change log" /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/docs/history.rst:3: (ERROR/3) Unknown directive type “spelling”. .. spelling:: reproducibility [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/docs/history.rst:16: (ERROR/3) Unknown directive type “towncrier-draft-entries”. .. towncrier-draft-entries:: |version| :sub:`/UNRELEASED DRAFT/` [filtered system message] CHANGES.rst:76: (INFO/1) Duplicate implicit target name: “features”. [filtered system message] CHANGES.rst:103: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:139: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:210: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:254: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:4: (INFO/1) Duplicate implicit target name: “v11.1.1”. [filtered system message] CHANGES.rst:10: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:29: (INFO/1) Duplicate implicit target name: “v11.1.0”. [filtered system message] CHANGES.rst:35: (INFO/1) Duplicate implicit target name: “features”. [filtered system message] CHANGES.rst:45: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:70: (INFO/1) Duplicate implicit target name: “v11.0.0”. [filtered system message] CHANGES.rst:76: (INFO/1) Duplicate implicit target name: “features”. [filtered system message] CHANGES.rst:88: (INFO/1) Duplicate implicit target name: “removals and backward incompatible breaking changes”. [filtered system message] CHANGES.rst:103: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:139: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:175: (INFO/1) Duplicate implicit target name: “v10.0.1”. [filtered system message] CHANGES.rst:181: (INFO/1) Duplicate implicit target name: “bug fixes”. [filtered system message] CHANGES.rst:210: (INFO/1) Duplicate implicit target name: “packaging updates and notes for downstreams”. [filtered system message] CHANGES.rst:254: (INFO/1) Duplicate implicit target name: “contributor-facing changes”. [filtered system message] CHANGES.rst:336: (INFO/1) Duplicate implicit target name: “v10.0.0”. [filtered system message] CHANGES.rst:346: (INFO/1) Duplicate implicit target name: “v9.0.0”. [filtered system message] CHANGES.rst:357: (INFO/1) Duplicate implicit target name: “v8.6.0”. [filtered system message] CHANGES.rst:392: (INFO/1) Duplicate implicit target name: “v8.5.2”. [filtered system message] CHANGES.rst:403: (INFO/1) Duplicate implicit target name: “v8.5.1”. [filtered system message] CHANGES.rst:420: (INFO/1) Duplicate implicit target name: “v8.5.0”. [filtered system message] CHANGES.rst:434: (INFO/1) Duplicate implicit target name: “v8.4.8”. [filtered system message] CHANGES.rst:444: (INFO/1) Duplicate implicit target name: “v8.4.7”. [filtered system message] CHANGES.rst:453: (INFO/1) Duplicate implicit target name: “v8.4.6”. [filtered system message] CHANGES.rst:466: (INFO/1) Duplicate implicit target name: “v8.4.5”. [filtered system message] CHANGES.rst:481: (INFO/1) Duplicate implicit target name: “v8.4.4”. [filtered system message] CHANGES.rst:496: (INFO/1) Duplicate implicit target name: “v8.4.3”. [filtered system message] CHANGES.rst:512: (INFO/1) Duplicate implicit target name: “v8.4.2”. [filtered system message] CHANGES.rst:524: (INFO/1) Duplicate implicit target name: “v8.4.1”. [filtered system message] CHANGES.rst:534: (INFO/1) Duplicate implicit target name: “v8.4.0”. [filtered system message] CHANGES.rst:546: (INFO/1) Duplicate implicit target name: “v8.3.1”. [filtered system message] CHANGES.rst:556: (INFO/1) Duplicate implicit target name: “v8.3.0”. [filtered system message] CHANGES.rst:567: (INFO/1) Duplicate implicit target name: “v8.2.1”. [filtered system message] CHANGES.rst:576: (INFO/1) Duplicate implicit target name: “v8.2.0”. [filtered system message] CHANGES.rst:587: (INFO/1) Duplicate implicit target name: “v8.1.0”. [filtered system message] CHANGES.rst:597: (INFO/1) Duplicate implicit target name: “v8.0.0”. [filtered system message] CHANGES.rst:610: (INFO/1) Duplicate implicit target name: “v7.0.0”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “retry_call”. [filtered system message] CHANGES.rst:622: (INFO/1) Duplicate implicit target name: “v6.6.0”. [filtered system message] CHANGES.rst:634: (INFO/1) Duplicate implicit target name: “v6.5.8”. [filtered system message] CHANGES.rst:644: (INFO/1) Duplicate implicit target name: “v6.5.7”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “abstract namespace sockets”. [filtered system message] CHANGES.rst:658: (INFO/1) Duplicate implicit target name: “v6.5.6”. [filtered system message] CHANGES.rst:667: (INFO/1) Duplicate implicit target name: “v6.5.5”. [filtered system message] CHANGES.rst:679: (INFO/1) Duplicate implicit target name: “v6.5.4”. [filtered system message] CHANGES.rst:719: (INFO/1) Duplicate implicit target name: “v6.5.3”. [filtered system message] CHANGES.rst:727: (INFO/1) Duplicate implicit target name: “v6.5.2”. [filtered system message] CHANGES.rst:740: (INFO/1) Duplicate implicit target name: “v6.5.1”. [filtered system message] CHANGES.rst:750: (INFO/1) Duplicate implicit target name: “v6.5.0”. [filtered system message] CHANGES.rst:759: (INFO/1) Duplicate implicit target name: “v6.4.0”. [filtered system message] CHANGES.rst:770: (INFO/1) Duplicate implicit target name: “v6.3.3”. [filtered system message] CHANGES.rst:779: (INFO/1) Duplicate implicit target name: “v6.3.2”. [filtered system message] CHANGES.rst:788: (INFO/1) Duplicate implicit target name: “v6.3.1”. [filtered system message] CHANGES.rst:797: (INFO/1) Duplicate implicit target name: “v6.3.0”. [filtered system message] CHANGES.rst:806: (INFO/1) Duplicate implicit target name: “v6.2.4”. [filtered system message] CHANGES.rst:820: (INFO/1) Duplicate implicit target name: “v6.2.3”. [filtered system message] CHANGES.rst:829: (INFO/1) Duplicate implicit target name: “v6.2.2”. [filtered system message] CHANGES.rst:838: (INFO/1) Duplicate implicit target name: “v6.2.1”. [filtered system message] CHANGES.rst:848: (INFO/1) Duplicate implicit target name: “v6.2.0”. [filtered system message] CHANGES.rst:872: (INFO/1) Duplicate implicit target name: “v6.1.2”. [filtered system message] CHANGES.rst:884: (INFO/1) Duplicate implicit target name: “v6.1.1”. [filtered system message] CHANGES.rst:895: (INFO/1) Duplicate implicit target name: “v6.1.0”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “@mitsuhiko”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “wsgi.input_terminated proposal”. [filtered system message] CHANGES.rst:925: (INFO/1) Duplicate implicit target name: “v6.0.0”. [filtered system message] CHANGES.rst:936: (INFO/1) Duplicate implicit target name: “v5.11.0”. [filtered system message] CHANGES.rst:949: (INFO/1) Duplicate implicit target name: “v5.10.0”. [filtered system message] CHANGES.rst:962: (INFO/1) Duplicate implicit target name: “v5.9.2”. [filtered system message] CHANGES.rst:970: (INFO/1) Duplicate implicit target name: “v5.9.1”. [filtered system message] CHANGES.rst:979: (INFO/1) Duplicate implicit target name: “v5.9.0”. [filtered system message] CHANGES.rst:996: (INFO/1) Duplicate implicit target name: “v5.8.3”. [filtered system message] CHANGES.rst:1016: (INFO/1) Duplicate implicit target name: “v5.8.2”. [filtered system message] CHANGES.rst:1026: (INFO/1) Duplicate implicit target name: “v5.8.1”. [filtered system message] CHANGES.rst:1041: (INFO/1) Duplicate implicit target name: “v5.8.0”. [filtered system message] CHANGES.rst:1067: (INFO/1) Duplicate implicit target name: “v5.7.0”. [filtered system message] CHANGES.rst:1107: (INFO/1) Duplicate implicit target name: “v5.6.0”. [filtered system message] CHANGES.rst:1124: (INFO/1) Duplicate implicit target name: “v5.5.2”. [filtered system message] CHANGES.rst:1137: (INFO/1) Duplicate implicit target name: “v5.5.1”. [filtered system message] CHANGES.rst:1157: (INFO/1) Duplicate implicit target name: “v5.5.0”. [filtered system message] CHANGES.rst:1179: (INFO/1) Duplicate implicit target name: “v5.4.0”. [filtered system message] CHANGES.rst:1187: (INFO/1) Duplicate implicit target name: “v5.3.0”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “jaraco skeleton”. [filtered system message] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/history.rst:9: (INFO/1) Duplicate explicit target name: “deployed at rtd”. [filtered system message] CHANGES.rst:1201: (INFO/1) Duplicate implicit target name: “v5.2.0”. [filtered system message] CHANGES.rst:1215: (INFO/1) Duplicate implicit target name: “v5.1.0”. [filtered system message] CHANGES.rst:1230: (INFO/1) Duplicate implicit target name: “v5.0.1”. [filtered system message] CHANGES.rst:1238: (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.1-build/cheroot-11.1.1/docs/index.rst:2: section "Welcome to Cheroot documentation!" gets labeled as "welcome to cheroot documentation!" /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/README.rst:53: section "Status" gets labeled as "status" /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/README.rst:59: section "For Enterprise" gets labeled as "for enterprise" /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/README.rst:86: section "Contribute Cheroot" gets labeled as "contribute cheroot" /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/README.rst:100: section "License" gets labeled as "license" /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.rst:33: input: .. automodule:: cheroot :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot [autodoc] import cheroot => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/__init__.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'High-performance, pure-Python HTTP server used by CherryPy.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__init__.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd0dd0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot'], True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd0dd0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot']), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__version__', '11.1.1', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'metadata', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.__main__.rst:4: input: .. automodule:: cheroot.__main__ :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.__main__ [autodoc] import cheroot.__main__ => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.__main__', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.__main__', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/__main__.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Stub for accessing the Cheroot CLI tool.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__main__.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd19d0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.__main__', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.__main__', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd19d0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__main__.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'main', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot._compat.rst:4: input: .. automodule:: cheroot._compat :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot._compat [autodoc] import cheroot._compat => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot._compat', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot._compat', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Compatibility code for using Cheroot with various versions of Python.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL10', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL31', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_CI', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_GITHUB_ACTIONS_WORKFLOW', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PPC', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYPY', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SOLARIS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PLATFORM_ARCH', 'x86_64', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SYS_PLATFORM', 'Linux', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/_compat.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Compatibility code for using Cheroot with various versions of Python.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/_compat.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2570>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot._compat', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot._compat', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2570>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/_compat.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'assert_native', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'extract_bytes', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntou', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'platform', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot._compat import assert_native [autodoc] import cheroot._compat => [autodoc] getattr(_, 'assert_native') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.assert_native', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(n)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.assert_native', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check whether the input is of native :py:class:`str` type.', '', 'Raises:', ' TypeError: in case of failed check', '']) [autodoc] from cheroot._compat import bton [autodoc] import cheroot._compat => [autodoc] getattr(_, 'bton') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.bton', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(b, encoding='ISO-8859-1')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.bton', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the byte string as native string in the given encoding.', '']) [autodoc] from cheroot._compat import extract_bytes [autodoc] import cheroot._compat => [autodoc] getattr(_, 'extract_bytes') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.extract_bytes', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(mv)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.extract_bytes', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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`', '']) [autodoc] from cheroot._compat import ntob [autodoc] import cheroot._compat => [autodoc] getattr(_, 'ntob') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot._compat.ntob', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(n, encoding='ISO-8859-1')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.ntob', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the native string as bytes in the given encoding.', '']) [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.ntou', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(n, encoding='ISO-8859-1')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot._compat.ntou', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.cli.rst:4: input: .. automodule:: cheroot.cli :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.cli [autodoc] import cheroot.cli => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.cli', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.cli', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Application', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'BindLocation', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'GatewayYo', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'TCPSocket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'UnixSocket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/cli.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/cli.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd1010>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.cli', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd1010>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/cli.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'argparse', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'import_module', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'main', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'parse_wsgi_bind_addr', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'parse_wsgi_bind_location', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'suppress', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.cli import AbstractSocket [autodoc] import cheroot.cli => [autodoc] getattr(_, 'AbstractSocket') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.AbstractSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(abstract_socket)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.AbstractSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.AbstractSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['AbstractSocket.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'AbstractSocket.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 66, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bind_addr',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.cli import Application [autodoc] import cheroot.cli => [autodoc] getattr(_, 'Application') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.Application', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(wsgi_app)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.Application', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.Application', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Application.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Application.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 74, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('wsgi_app',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'resolve', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'server_args', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.cli import Application.resolve [autodoc] import cheroot.cli => [autodoc] getattr(_, 'Application') [autodoc] => [autodoc] getattr(_, 'resolve') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.cli.Application.resolve', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(full_path)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.Application.resolve', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Read WSGI app/Gateway path string and import application module.', '']) [autodoc] from cheroot.cli import Application.server [autodoc] import cheroot.cli => [autodoc] getattr(_, 'Application') [autodoc] => [autodoc] getattr(_, 'server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.cli.Application.server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(parsed_args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.Application.server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Server.', '']) [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.server_args', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(parsed_args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.Application.server_args', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return keyword arguments for Server class.', '']) [autodoc] from cheroot.cli import BindLocation [autodoc] import cheroot.cli => [autodoc] getattr(_, 'BindLocation') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.BindLocation', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.BindLocation', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.BindLocation', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A class for storing the bind location for a Cheroot instance.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A class for storing the bind location for a Cheroot instance.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 40, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.cli import GatewayYo [autodoc] import cheroot.cli => [autodoc] getattr(_, 'GatewayYo') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.GatewayYo', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(gateway)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.GatewayYo', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.GatewayYo', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Gateway.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'cheroot.cli', '__firstlineno__': 113, '__doc__': 'Gateway.', '__init__': , 'server': , '__static_attributes__': ('gateway',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Gateway.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 113, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('gateway',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(parsed_args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.cli.GatewayYo.server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Server.', '']) [autodoc] from cheroot.cli import TCPSocket [autodoc] import cheroot.cli => [autodoc] getattr(_, 'TCPSocket') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.TCPSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(address, port)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.TCPSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.TCPSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['TCPSocket.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'TCPSocket.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 44, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bind_addr',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.cli import UnixSocket [autodoc] import cheroot.cli => [autodoc] getattr(_, 'UnixSocket') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.cli.UnixSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(path)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.cli.UnixSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.cli.UnixSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['UnixSocket.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'UnixSocket.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 58, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bind_addr',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.cli.main', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.cli.main', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create a new Cheroot instance with arguments from the command line.', '']) [autodoc] from cheroot.cli import parse_wsgi_bind_addr [autodoc] import cheroot.cli => [autodoc] getattr(_, 'parse_wsgi_bind_addr') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.cli.parse_wsgi_bind_addr', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(bind_addr_string)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.cli.parse_wsgi_bind_addr', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Convert bind address string to bind address parameter.', '']) [autodoc] from cheroot.cli import parse_wsgi_bind_location [autodoc] import cheroot.cli => [autodoc] getattr(_, 'parse_wsgi_bind_location') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.cli.parse_wsgi_bind_location', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(bind_addr_string)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.cli.parse_wsgi_bind_location', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Convert bind address string to a BindLocation.', '']) [autodoc] from cheroot.cli import suppress [autodoc] import cheroot.cli => [autodoc] getattr(_, 'suppress') [autodoc] => [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.1-build/cheroot-11.1.1/docs/pkg/cheroot.cli.rst:2: section "cheroot.cli module" gets labeled as "cheroot.cli module" /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.connections.rst:4: input: .. automodule:: cheroot.connections :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.connections [autodoc] import cheroot.connections => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Utilities to manage open connections.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ConnectionManager', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'MakeFile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_ThreadsafeSelector', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/connections.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Utilities to manage open connections.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/connections.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd21b0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.connections', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.connections', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd21b0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/connections.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'fcntl', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'io', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'prevent_socket_inheritance', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'selectors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'suppress', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.connections import ConnectionManager [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.connections.ConnectionManager', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.connections.ConnectionManager', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.connections.ConnectionManager', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 115, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.connections', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_selector', '_serving', '_stop_requested', 'server'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_expire', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_from_server_socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_num_connections', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_remove_invalid_sockets', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_run', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'can_add_keepalive_connection', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'put', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'run', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'stop', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.connections import ConnectionManager._expire [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_expire') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._expire', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(threshold)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._expire', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.connections import ConnectionManager._from_server_socket [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_from_server_socket') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._from_server_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server_socket)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._from_server_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.connections import ConnectionManager._num_connections [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_num_connections') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.connections.ConnectionManager._num_connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.connections.ConnectionManager._num_connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.connections import ConnectionManager._remove_invalid_sockets [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_remove_invalid_sockets') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._remove_invalid_sockets', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._remove_invalid_sockets', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.connections import ConnectionManager._run [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, '_run') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager._run', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(expiration_interval)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager._run', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.connections.ConnectionManager.can_add_keepalive_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.connections.ConnectionManager.can_add_keepalive_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Flag whether it is allowed to add a new keep-alive connection.', '']) [autodoc] from cheroot.connections import ConnectionManager.close [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Close all monitored connections.', '']) [autodoc] from cheroot.connections import ConnectionManager.put [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'put') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager.put', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.put', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Put idle connection into the ConnectionManager to be managed.', '', ':param conn: HTTP connection to be managed', ':type conn: cheroot.server.HTTPConnection', '']) [autodoc] from cheroot.connections import ConnectionManager.run [autodoc] import cheroot.connections => [autodoc] getattr(_, 'ConnectionManager') [autodoc] => [autodoc] getattr(_, 'run') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections.ConnectionManager.run', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(expiration_interval)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.run', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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()`.', '']) [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.stop', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections.ConnectionManager.stop', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Stop the selector loop in run() synchronously.', '', 'May take up to half a second.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.connections._ThreadsafeSelector', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.connections._ThreadsafeSelector', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.connections._ThreadsafeSelector', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 52, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__len__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.connections', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_lock', '_selector'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'connections', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'register', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'select', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'unregister', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.connections import _ThreadsafeSelector.close [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections._ThreadsafeSelector.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Close the selector.', '']) [autodoc] from cheroot.connections import _ThreadsafeSelector.connections [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'connections') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.connections._ThreadsafeSelector.connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.connections._ThreadsafeSelector.connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Retrieve connections registered with the selector.', '']) [autodoc] from cheroot.connections import _ThreadsafeSelector.register [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'register') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections._ThreadsafeSelector.register', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(fileobj, events, data=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.register', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Register ``fileobj`` with the selector.', '']) [autodoc] from cheroot.connections import _ThreadsafeSelector.select [autodoc] import cheroot.connections => [autodoc] getattr(_, '_ThreadsafeSelector') [autodoc] => [autodoc] getattr(_, 'select') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.connections._ThreadsafeSelector.select', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(timeout=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.select', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return socket fd and data pairs from selectors.select call.', '', 'Returns entries ready to read in the form:', ' (socket_file_descriptor, connection)', '']) [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.unregister', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(fileobj)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.connections._ThreadsafeSelector.unregister', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Unregister ``fileobj`` from the selector.', '']) [autodoc] from cheroot.connections import prevent_socket_inheritance [autodoc] import cheroot.connections => [autodoc] getattr(_, 'prevent_socket_inheritance') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.connections.prevent_socket_inheritance', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.connections.prevent_socket_inheritance', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Mark the given socket fd as non-inheritable (POSIX).', '']) [autodoc] from cheroot.connections import suppress [autodoc] import cheroot.connections => [autodoc] getattr(_, 'suppress') [autodoc] => [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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.errors.rst:4: input: .. automodule:: cheroot.errors :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.errors [autodoc] import cheroot.errors => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.errors', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.errors', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Collection of exceptions raised and/or processed by Cheroot.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'FatalSSLAlert', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'MaxSizeExceeded', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'NoSSLError', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/errors.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Collection of exceptions raised and/or processed by Cheroot.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/errors.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2390>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.errors', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.errors', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2390>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/errors.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'acceptable_sock_shutdown_error_codes', {32, 107, 108, 104}, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'acceptable_sock_shutdown_exceptions', (, ), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'plat_specific_errors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket_error_eintr', [4], False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket_errors_nonblocking', [11], False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.errors import FatalSSLAlert [autodoc] import cheroot.errors => [autodoc] getattr(_, 'FatalSSLAlert') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.errors.FatalSSLAlert', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.errors.FatalSSLAlert', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.errors.FatalSSLAlert', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 18, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.errors', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.errors import MaxSizeExceeded [autodoc] import cheroot.errors => [autodoc] getattr(_, 'MaxSizeExceeded') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.errors.MaxSizeExceeded', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.errors.MaxSizeExceeded', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.errors.MaxSizeExceeded', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 7, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.errors', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.errors import NoSSLError [autodoc] import cheroot.errors => [autodoc] getattr(_, 'NoSSLError') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.errors.NoSSLError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.errors.NoSSLError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.errors.NoSSLError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 14, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.errors', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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} [app] emitting event: 'autodoc-process-signature'('data', 'cheroot.errors.acceptable_sock_shutdown_error_codes', {32, 107, 108, 104}, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('data', 'cheroot.errors.acceptable_sock_shutdown_error_codes', {32, 107, 108, 104}, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [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'('function', 'cheroot.errors.plat_specific_errors', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*errnames)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.errors.plat_specific_errors', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.makefile.rst:4: input: .. automodule:: cheroot.makefile :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.makefile [autodoc] import cheroot.makefile => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Socket file object.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'BufferedWriter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'MakeFile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SOCK_WRITE_BLOCKSIZE', 16384, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'StreamReader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/makefile.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Socket file object.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/makefile.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2690>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.makefile', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.makefile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2690>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/makefile.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'io', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.makefile import BufferedWriter [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'BufferedWriter') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.makefile.BufferedWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(raw, buffer_size=8192)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.makefile.BufferedWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.makefile.BufferedWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Faux file object attached to a socket object.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Faux file object attached to a socket object.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 12, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.makefile', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7dcf7700>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_flush_unlocked', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7dcf7700> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.makefile.BufferedWriter._abc_impl', <_abc._abc_data object at 0x7fca7dcf7700>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.makefile import BufferedWriter._flush_unlocked [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'BufferedWriter') [autodoc] => [autodoc] getattr(_, '_flush_unlocked') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.BufferedWriter._flush_unlocked', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.BufferedWriter._flush_unlocked', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.makefile import BufferedWriter.write [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'BufferedWriter') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.BufferedWriter.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(b)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.BufferedWriter.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Write bytes to buffer.', '']) [autodoc] from cheroot.makefile import MakeFile [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'MakeFile') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.makefile.MakeFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='r', bufsize=8192)", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.makefile.MakeFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['File object attached to a socket object.', '']) [autodoc] from cheroot.makefile import StreamReader [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamReader') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.makefile.StreamReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='r', bufsize=8192)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.makefile.StreamReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.makefile.StreamReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Socket stream reader.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Socket stream reader.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 38, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.makefile', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bytes_read',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7dcf77c0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'has_data', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7dcf77c0> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.makefile.StreamReader._abc_impl', <_abc._abc_data object at 0x7fca7dcf77c0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.makefile import StreamReader.has_data [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] getattr(_, 'has_data') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.StreamReader.has_data', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.StreamReader.has_data', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return true if there is buffered data to read.', '']) [autodoc] from cheroot.makefile import StreamReader.read [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamReader') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.StreamReader.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.StreamReader.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Capture bytes read.', '']) [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.StreamWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='w', bufsize=8192)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.makefile.StreamWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.makefile.StreamWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Socket stream writer.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Socket stream writer.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 57, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.makefile', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bytes_written',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7dcf7780>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7dcf7780> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.makefile.StreamWriter._abc_impl', <_abc._abc_data object at 0x7fca7dcf7780>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.makefile import StreamWriter.write [autodoc] import cheroot.makefile => [autodoc] getattr(_, 'StreamWriter') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.makefile.StreamWriter.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(val, *args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.makefile.StreamWriter.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Capture bytes written.', '']) [autodoc] output: .. py:module:: cheroot.makefile Socket file object. .. py:class:: BufferedWriter(raw, buffer_size=8192) :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=8192) :module: cheroot.makefile File object attached to a socket object. .. py:class:: StreamReader(sock, mode='r', bufsize=8192) :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=8192) :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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.server.rst:4: input: .. automodule:: cheroot.server :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.server [autodoc] import cheroot.server => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'COLON', b':', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'CRLF', b'\r\n', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ChunkedRFile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'DropUnderscoreHeaderReader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'EMPTY', b'', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'FORWARD_SLASH', b'/', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPConnection', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPRequest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HeaderReader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_GAE', False, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PPC', False, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_UID_GID_RESOLVABLE', True, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'KnownLengthRFile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'LF', b'\n', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'MakeFile', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'QUOTED_SLASH', b'%2F', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'QUOTED_SLASH_REGEX', re.compile(b'(?i)%2F', re.IGNORECASE), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'QueueShutDown', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'QueueWithShutdown', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SEMICOLON', b';', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SPACE', b' ', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SizeCheckWrapper', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'TAB', b'\t', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_STOPPING_FOR_INTERRUPT', Exception(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__all__', ('ChunkedRFile', 'DropUnderscoreHeaderReader', 'Gateway', 'HTTPConnection', 'HTTPRequest', 'HTTPServer', 'HeaderReader', 'KnownLengthRFile', 'SizeCheckWrapper', 'get_ssl_adapter_class'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/server.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/server.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd1190>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.server', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd1190>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/server.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__version__', '11.1.1', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'connections', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'email', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'get_ssl_adapter_class', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'grp', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'io', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'lru_cache', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'platform', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pwd', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'queue', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 're', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ssl_adapters', {'builtin': 'cheroot.ssl.builtin.BuiltinSSLAdapter', 'pyopenssl': 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter'}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'struct', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threadpool', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'traceback_', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.server import ChunkedRFile [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.ChunkedRFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(rfile, maxlen, bufsize=8192)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.ChunkedRFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.ChunkedRFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 497, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('buffer', 'bufsize', 'bytes_read', 'closed', 'maxlen', 'rfile'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_fetch', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read_trailer_lines', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'readlines', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.server import ChunkedRFile._fetch [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, '_fetch') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile._fetch', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile._fetch', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.server import ChunkedRFile.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Release resources allocated for ``rfile``.', '']) [autodoc] from cheroot.server import ChunkedRFile.read [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.server import ChunkedRFile.read_trailer_lines [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'read_trailer_lines') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.read_trailer_lines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.read_trailer_lines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Read HTTP headers and yield them.', '', ':yields: CRLF separated lines', ':ytype: bytes', '']) [autodoc] from cheroot.server import ChunkedRFile.readline [autodoc] import cheroot.server => [autodoc] getattr(_, 'ChunkedRFile') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.ChunkedRFile.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [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.readlines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sizehint=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.ChunkedRFile.readlines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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]', '']) [autodoc] from cheroot.server import DropUnderscoreHeaderReader [autodoc] import cheroot.server => [autodoc] getattr(_, 'DropUnderscoreHeaderReader') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.DropUnderscoreHeaderReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.DropUnderscoreHeaderReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.DropUnderscoreHeaderReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Custom HeaderReader to exclude any headers with underscores in them.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Custom HeaderReader to exclude any headers with underscores in them.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 302, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_allow_header', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key_name)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.DropUnderscoreHeaderReader._allow_header', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.server import Gateway [autodoc] import cheroot.server => [autodoc] getattr(_, 'Gateway') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.Gateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.Gateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.Gateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Base class to interface HTTPServer with other systems, such as WSGI.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Base class to interface HTTPServer with other systems, such as WSGI.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 2324, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('req',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.Gateway.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Process the current request. Must be overridden in a subclass.', '']) [autodoc] from cheroot.server import HTTPConnection [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HTTPConnection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server, sock, makefile=)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.HTTPConnection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPConnection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['An HTTP connection (active socket).', '']) [app] emitting event: 'autodoc-skip-member'('class', 'RequestHandlerClass', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': 8192, 'wbufsize': 8192, '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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'An HTTP connection (active socket).', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1294, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_close_kernel_socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_conditional_error', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_handle_no_ssl', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'communicate', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_peer_creds', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'last_used', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'linger', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peer_gid', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peer_group', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peer_pid', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peer_uid', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peer_user', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_enabled', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_resolve_enabled', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'rbufsize', 8192, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'remote_addr', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'remote_port', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'resolve_peer_creds', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_env', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'wbufsize', 8192, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection._close_kernel_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection._close_kernel_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Terminate the connection at the transport level.', '']) [autodoc] from cheroot.server import HTTPConnection._conditional_error [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, '_conditional_error') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection._conditional_error', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, response)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection._conditional_error', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Respond with an error.', '', "Don't bother writing if a response", 'has already started being written.', '']) [autodoc] from cheroot.server import HTTPConnection._handle_no_ssl [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, '_handle_no_ssl') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection._handle_no_ssl', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection._handle_no_ssl', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.server import HTTPConnection.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Close the socket underlying this connection.', '']) [autodoc] from cheroot.server import HTTPConnection.communicate [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'communicate') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.communicate', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.communicate', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Read each request and respond appropriately.', '', 'Returns true if the connection should be kept open.', '']) [autodoc] from cheroot.server import HTTPConnection.get_peer_creds [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'get_peer_creds') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.get_peer_creds', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.get_peer_creds', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.server import HTTPConnection.last_used [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'last_used') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.last_used', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.linger [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'linger') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.linger', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.peer_gid [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_gid') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_gid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_gid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the group id of the connected peer process.', '']) [autodoc] from cheroot.server import HTTPConnection.peer_group [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_group') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_group', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_group', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the group of the connected peer process.', '']) [autodoc] from cheroot.server import HTTPConnection.peer_pid [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_pid') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_pid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_pid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the id of the connected peer process.', '']) [autodoc] from cheroot.server import HTTPConnection.peer_uid [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_uid') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_uid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_uid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the user id of the connected peer process.', '']) [autodoc] from cheroot.server import HTTPConnection.peer_user [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peer_user') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPConnection.peer_user', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPConnection.peer_user', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the username of the connected peer process.', '']) [autodoc] from cheroot.server import HTTPConnection.peercreds_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peercreds_enabled') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.peercreds_enabled', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.peercreds_resolve_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'peercreds_resolve_enabled') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.peercreds_resolve_enabled', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.rbufsize [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'rbufsize') [autodoc] => 8192 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.rbufsize', 8192, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.remote_addr [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'remote_addr') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.remote_addr', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.remote_port [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'remote_port') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.remote_port', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.resolve_peer_creds [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'resolve_peer_creds') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPConnection.resolve_peer_creds', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPConnection.resolve_peer_creds', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.server import HTTPConnection.ssl_env [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'ssl_env') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.ssl_env', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPConnection.wbufsize [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPConnection') [autodoc] => [autodoc] getattr(_, 'wbufsize') [autodoc] => 8192 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPConnection.wbufsize', 8192, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPRequest [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HTTPRequest', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server, conn, proxy_mode=False, strict_mode=True)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.HTTPRequest', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPRequest', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['An HTTP Request (and response).', '', 'A single HTTP connection may consist of multiple request/response pairs.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 690, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'chunked_write', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close_connection', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'conn', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ensure_headers_sent', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'header_reader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'inheaders', {}, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'outheaders', [], False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'parse_request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read_request_headers', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read_request_line', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ready', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'send_headers', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'server', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'simple_response', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.server import HTTPRequest.chunked_write [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'chunked_write') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.chunked_write', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.chunked_write', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['If True, output will be encoded with the "chunked" transfer-coding.', '', 'This value is set automatically inside send_headers.', '']) [autodoc] from cheroot.server import HTTPRequest.close_connection [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'close_connection') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.close_connection', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.close_connection', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.server import HTTPRequest.conn [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'conn') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.conn', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.conn', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The HTTPConnection object on which this request connected.', '']) [autodoc] from cheroot.server import HTTPRequest.ensure_headers_sent [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'ensure_headers_sent') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.ensure_headers_sent', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.ensure_headers_sent', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Ensure headers are sent to the client if not already sent.', '']) [autodoc] from cheroot.server import HTTPRequest.header_reader [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'header_reader') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.header_reader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.header_reader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A HeaderReader instance or compatible reader.', '']) [autodoc] from cheroot.server import HTTPRequest.inheaders [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'inheaders') [autodoc] => {} [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.inheaders', {}, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.inheaders', {}, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A dict of request headers.', '']) [autodoc] from cheroot.server import HTTPRequest.outheaders [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'outheaders') [autodoc] => [] [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.outheaders', [], {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.outheaders', [], {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A list of header tuples to write in the response.', '']) [autodoc] from cheroot.server import HTTPRequest.parse_request [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'parse_request') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.parse_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.parse_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Parse the next HTTP request start-line and message-headers.', '']) [autodoc] from cheroot.server import HTTPRequest.read_request_headers [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'read_request_headers') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.read_request_headers', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.read_request_headers', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Read ``self.rfile`` into ``self.inheaders``.', '', 'Ref: :py:attr:`self.inheaders `.', '', ':returns: success status', ':rtype: bool', '']) [autodoc] from cheroot.server import HTTPRequest.read_request_line [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'read_request_line') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.read_request_line', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.read_request_line', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Read and parse first line of the HTTP request.', '', 'Returns:', " bool: True if the request line is valid or False if it's malformed.", '']) [autodoc] from cheroot.server import HTTPRequest.ready [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'ready') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.ready', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.ready', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.server import HTTPRequest.respond [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Call the gateway and write its iterable output.', '']) [autodoc] from cheroot.server import HTTPRequest.send_headers [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'send_headers') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.send_headers', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.send_headers', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Assert, process, and send the HTTP response message-headers.', '', 'You must set ``self.status``, and :py:attr:`self.outheaders', '` before calling this.', '']) [autodoc] from cheroot.server import HTTPRequest.server [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'server') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPRequest.server', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPRequest.server', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The HTTPServer object which is receiving this request.', '']) [autodoc] from cheroot.server import HTTPRequest.simple_response [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'simple_response') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.simple_response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(status, msg='')", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.simple_response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Write a simple response back to the client.', '']) [autodoc] from cheroot.server import HTTPRequest.write [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPRequest') [autodoc] => [autodoc] getattr(_, 'write') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPRequest.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(chunk)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPRequest.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Write unbuffered data to the client.', '']) [autodoc] from cheroot.server import HTTPServer [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HTTPServer', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPServer', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['An HTTP server.', '']) [app] emitting event: 'autodoc-skip-member'('class', 'ConnectionClass', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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.1', '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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'An HTTP server.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1556, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__str__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_bind_addr', '127.0.0.1', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_interrupt', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_make_socket_reusable', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_run_in_thread', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_serve_unservicable', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_stopping_for_interrupt', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind_addr', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind_socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind_unix_socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'can_add_keepalive_connection', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'clear_stats', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'error_log', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'expiration_interval', 0.5, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'gateway', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'interrupt', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'keep_alive_conn_limit', 10, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'max_request_body_size', 0, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'max_request_header_size', 0, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'maxthreads', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'minthreads', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'nodelay', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_enabled', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'peercreds_resolve_enabled', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'prepare', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'prepare_socket', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'process_conn', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'protocol', 'HTTP/1.1', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'put_conn', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ready', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'request_queue_size', 5, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'resolve_real_bind_addr', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'reuse_port', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'runtime', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'safe_start', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'serve', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'server_name', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'shutdown_timeout', 5, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'software', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_adapter', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'start', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'stop', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'timeout', 10, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'version', 'Cheroot/11.1.1', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.server import HTTPServer.ConnectionClass [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'ConnectionClass') [autodoc] => [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HTTPServer.ConnectionClass', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The class to use for handling HTTP connections.', '']) [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' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer._bind_addr', '127.0.0.1', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPServer._interrupt [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_interrupt') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer._interrupt', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.server import HTTPServer._make_socket_reusable [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_make_socket_reusable') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer._make_socket_reusable', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(socket_, bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer._make_socket_reusable', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.server import HTTPServer._run_in_thread [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_run_in_thread') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer._run_in_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer._run_in_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Context manager for running this server in a thread.', '']) [autodoc] from cheroot.server import HTTPServer._serve_unservicable [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_serve_unservicable') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer._serve_unservicable', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer._serve_unservicable', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["Serve connections we can't handle a 503.", '']) [autodoc] from cheroot.server import HTTPServer._stopping_for_interrupt [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, '_stopping_for_interrupt') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer._stopping_for_interrupt', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer._stopping_for_interrupt', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return whether the server is responding to an interrupt.', '']) [autodoc] from cheroot.server import HTTPServer.bind [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(family, type, proto=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create (or recreate) the actual socket object.', '']) [autodoc] from cheroot.server import HTTPServer.bind_addr [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind_addr') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer.bind_addr', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer.bind_addr', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.server import HTTPServer.bind_socket [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind_socket') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.bind_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(socket_, bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.bind_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Bind the socket to given interface.', '']) [autodoc] from cheroot.server import HTTPServer.bind_unix_socket [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'bind_unix_socket') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.bind_unix_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.bind_unix_socket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create (or recreate) a UNIX socket object.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer.can_add_keepalive_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer.can_add_keepalive_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Flag whether it is allowed to add a new keep-alive connection.', '']) [autodoc] from cheroot.server import HTTPServer.clear_stats [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'clear_stats') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.clear_stats', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.clear_stats', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Reset server stat counters..', '']) [autodoc] from cheroot.server import HTTPServer.error_log [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'error_log') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.error_log', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(msg='', level=20, traceback=False)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.error_log', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.server import HTTPServer.expiration_interval [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'expiration_interval') [autodoc] => 0.5 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.expiration_interval', 0.5, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.expiration_interval', 0.5, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The interval, in seconds, at which the server checks for', 'expired connections (default 0.5).', '']) [autodoc] from cheroot.server import HTTPServer.gateway [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'gateway') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.gateway', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.gateway', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A Gateway instance.', '']) [autodoc] from cheroot.server import HTTPServer.interrupt [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'interrupt') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.server.HTTPServer.interrupt', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.server.HTTPServer.interrupt', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Flag interrupt of the server.', '']) [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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.keep_alive_conn_limit', 10, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.keep_alive_conn_limit', 10, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Maximum number of waiting keep-alive connections that will be kept open.', '', 'Default is 10. Set to None to have unlimited connections.', '']) [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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.max_request_body_size', 0, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.max_request_body_size', 0, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The maximum size, in bytes, for request bodies, or 0 for no limit.', '']) [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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.max_request_header_size', 0, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.max_request_header_size', 0, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The maximum size, in bytes, for request headers, or 0 for no limit.', '']) [autodoc] from cheroot.server import HTTPServer.maxthreads [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'maxthreads') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.maxthreads', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.maxthreads', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The maximum number of worker threads to create.', '', '(default -1 = no limit)', '']) [autodoc] from cheroot.server import HTTPServer.minthreads [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'minthreads') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.minthreads', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.minthreads', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The minimum number of worker threads to create (default 10).', '']) [autodoc] from cheroot.server import HTTPServer.nodelay [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'nodelay') [autodoc] => True [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.nodelay', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.nodelay', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['If True (the default since 3.1), sets the TCP_NODELAY socket option.', '']) [autodoc] from cheroot.server import HTTPServer.peercreds_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'peercreds_enabled') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.peercreds_enabled', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.peercreds_enabled', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Whether :py:data:`True`, peer credentials will be looked up via UNIX', 'domain socket.', '']) [autodoc] from cheroot.server import HTTPServer.peercreds_resolve_enabled [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'peercreds_resolve_enabled') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.peercreds_resolve_enabled', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.peercreds_resolve_enabled', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['If :py:data:`True`, username/group will be looked up in the OS from', '``PEERCREDS``-provided IDs.', '']) [autodoc] from cheroot.server import HTTPServer.prepare [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'prepare') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.prepare', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.prepare', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Prepare server to serving requests.', '', "It binds a socket's port, setups the socket to ``listen()`` and does", 'other preparing things.', '']) [autodoc] from cheroot.server import HTTPServer.prepare_socket [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'prepare_socket') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.prepare_socket', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create and prepare the socket object.', '']) [autodoc] from cheroot.server import HTTPServer.process_conn [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'process_conn') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.process_conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.process_conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Process an incoming HTTPConnection.', '']) [autodoc] from cheroot.server import HTTPServer.protocol [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'protocol') [autodoc] => 'HTTP/1.1' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.protocol', 'HTTP/1.1', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.protocol', 'HTTP/1.1', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.server import HTTPServer.put_conn [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'put_conn') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.put_conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.put_conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Put an idle connection back into the ConnectionManager.', '']) [autodoc] from cheroot.server import HTTPServer.ready [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'ready') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.ready', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.ready', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Internal flag which indicating the socket is accepting connections.', '']) [autodoc] from cheroot.server import HTTPServer.request_queue_size [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'request_queue_size') [autodoc] => 5 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.request_queue_size', 5, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.request_queue_size', 5, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["The 'backlog' argument to ``socket.listen()``.", '', 'Maximum queued connections (default 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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.resolve_real_bind_addr', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(socket_)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.resolve_real_bind_addr', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Retrieve actual bind address from bound socket.', '']) [autodoc] from cheroot.server import HTTPServer.reuse_port [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'reuse_port') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.reuse_port', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.reuse_port', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['If True, set SO_REUSEPORT on the socket.', '']) [autodoc] from cheroot.server import HTTPServer.runtime [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'runtime') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.runtime', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.runtime', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return server uptime.', '']) [autodoc] from cheroot.server import HTTPServer.safe_start [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'safe_start') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.safe_start', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.safe_start', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Run the server forever, and stop it cleanly on exit.', '']) [autodoc] from cheroot.server import HTTPServer.serve [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'serve') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.serve', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.serve', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Serve requests, after invoking :func:`prepare()`.', '']) [autodoc] from cheroot.server import HTTPServer.server_name [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'server_name') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.server_name', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.server_name', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The name of the server; defaults to ``self.version``.', '']) [autodoc] from cheroot.server import HTTPServer.shutdown_timeout [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'shutdown_timeout') [autodoc] => 5 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.shutdown_timeout', 5, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.shutdown_timeout', 5, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The total time to wait for worker threads to cleanly exit.', '', 'Specified in seconds.', '']) [autodoc] from cheroot.server import HTTPServer.software [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'software') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.software', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.software', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The value to set for the SERVER_SOFTWARE entry in the WSGI environ.', '', "If None, this defaults to ``'%s Server' % self.version``.", '']) [autodoc] from cheroot.server import HTTPServer.ssl_adapter [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'ssl_adapter') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.ssl_adapter', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.ssl_adapter', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['An instance of ``ssl.Adapter`` (or a subclass).', '', 'Ref: :py:class:`ssl.Adapter `.', '', 'You must have the corresponding TLS driver library installed.', '']) [autodoc] from cheroot.server import HTTPServer.start [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'start') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.start', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.start', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Run the server forever.', '', 'It is shortcut for invoking :func:`prepare()` then :func:`serve()`.', '']) [autodoc] from cheroot.server import HTTPServer.stop [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'stop') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HTTPServer.stop', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HTTPServer.stop', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Gracefully shutdown a server that is serving forever.', '']) [autodoc] from cheroot.server import HTTPServer.timeout [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'timeout') [autodoc] => 10 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.timeout', 10, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.timeout', 10, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The timeout in seconds for accepted connections (default 10).', '']) [autodoc] from cheroot.server import HTTPServer.version [autodoc] import cheroot.server => [autodoc] getattr(_, 'HTTPServer') [autodoc] => [autodoc] getattr(_, 'version') [autodoc] => 'Cheroot/11.1.1' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.server.HTTPServer.version', 'Cheroot/11.1.1', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.server.HTTPServer.version', 'Cheroot/11.1.1', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A version string for the HTTPServer.', '']) [autodoc] from cheroot.server import HeaderReader [autodoc] import cheroot.server => [autodoc] getattr(_, 'HeaderReader') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.HeaderReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.HeaderReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.HeaderReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Object for reading headers from an HTTP request.', '', 'Interface and default implementation.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Object for reading headers from an HTTP request.\n\nInterface and default implementation.\n', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 231, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_allow_header', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_transform_key', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.server import HeaderReader._allow_header [autodoc] import cheroot.server => [autodoc] getattr(_, 'HeaderReader') [autodoc] => [autodoc] getattr(_, '_allow_header') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.HeaderReader._allow_header', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key_name)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HeaderReader._allow_header', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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._transform_key', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key_name)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.HeaderReader._transform_key', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.server import KnownLengthRFile [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.KnownLengthRFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(rfile, content_length)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.KnownLengthRFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.KnownLengthRFile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 407, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__iter__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__next__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('remaining', 'rfile'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'next', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'readlines', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.server import KnownLengthRFile.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Release resources allocated for ``rfile``.', '']) [autodoc] from cheroot.server import KnownLengthRFile.next [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'next') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.next', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.next', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Generate next file chunk.', '']) [autodoc] from cheroot.server import KnownLengthRFile.read [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.server import KnownLengthRFile.readline [autodoc] import cheroot.server => [autodoc] getattr(_, 'KnownLengthRFile') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.KnownLengthRFile.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [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.readlines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sizehint=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.KnownLengthRFile.readlines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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]', '']) [autodoc] from cheroot.server import SizeCheckWrapper [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.server.SizeCheckWrapper', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(rfile, maxlen)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.server.SizeCheckWrapper', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.server.SizeCheckWrapper', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 310, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__iter__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__next__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('bytes_read', 'maxlen', 'rfile'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_check_length', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'next', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'readlines', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.server import SizeCheckWrapper._check_length [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, '_check_length') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper._check_length', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper._check_length', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.server import SizeCheckWrapper.close [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Release resources allocated for ``rfile``.', '']) [autodoc] from cheroot.server import SizeCheckWrapper.next [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'next') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.next', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.next', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Generate next file chunk.', '']) [autodoc] from cheroot.server import SizeCheckWrapper.read [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'read') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.server import SizeCheckWrapper.readline [autodoc] import cheroot.server => [autodoc] getattr(_, 'SizeCheckWrapper') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.server.SizeCheckWrapper.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [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.readlines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sizehint=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.server.SizeCheckWrapper.readlines', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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]', '']) [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'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.server.get_ssl_adapter_class', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(name='builtin')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.server.get_ssl_adapter_class', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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: 8192 .. 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: 8192 .. 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.1' 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', >) [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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.ssl.rst:16: input: .. automodule:: cheroot.ssl :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.ssl [autodoc] import cheroot.ssl => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.ssl', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.ssl', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Implementation of the SSL adapter base interface.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ABC', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Adapter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/__pycache__/__init__.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Implementation of the SSL adapter base interface.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/__init__.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7d795a90>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.ssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.ssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl'], True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.ssl', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7d795a90>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl']), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'abstractmethod', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.Adapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.Adapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.Adapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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({'bind', 'get_environ', '__init__', 'makefile', 'wrap'}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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({'bind', 'get_environ', '__init__', 'makefile', 'wrap'}), '_abc_impl': <_abc._abc_data object at 0x7fca7d52d180>, '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 6, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('certificate', 'certificate_chain', 'ciphers', 'context', 'private_key', 'private_key_password'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7d52d180>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'wrap', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7d52d180> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.Adapter._abc_impl', <_abc._abc_data object at 0x7fca7d52d180>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.ssl import Adapter.bind [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Wrap and return the given socket.', '']) [autodoc] from cheroot.ssl import Adapter.get_environ [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return WSGI environ entries to be merged into each request.', '']) [autodoc] from cheroot.ssl import Adapter.makefile [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'makefile') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='r', bufsize=-1)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return socket file object.', '']) [autodoc] from cheroot.ssl import Adapter.wrap [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'Adapter') [autodoc] => [autodoc] getattr(_, 'wrap') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.Adapter.wrap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.Adapter.wrap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Wrap and return the given socket, plus WSGI environ entries.', '']) [autodoc] from cheroot.ssl import abstractmethod [autodoc] import cheroot.ssl => [autodoc] getattr(_, 'abstractmethod') [autodoc] => [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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.ssl.builtin.rst:4: input: .. automodule:: cheroot.ssl.builtin :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.ssl.builtin [autodoc] import cheroot.ssl.builtin => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.ssl.builtin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.ssl.builtin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'BuiltinSSLAdapter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'DEFAULT_BUFFER_SIZE', 8192, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'StreamReader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/__pycache__/builtin.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/builtin.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7d796ab0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.ssl.builtin', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.ssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.ssl.builtin', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7d796ab0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/builtin.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_assert_ssl_exc_contains', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_loopback_for_cert', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_loopback_for_cert_thread', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_parse_cert', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_sni_callback', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ssl', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'suppress', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.builtin.BuiltinSSLAdapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.builtin.BuiltinSSLAdapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.builtin.BuiltinSSLAdapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', "Wrapper for integrating Python's builtin :py:mod:`ssl` with Cheroot.", True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 162, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.builtin', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_context', '_server_env', 'context'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7d9a5680>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_make_env_cert_dict', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_make_env_dn_dict', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_make_env_san_dict', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'certificate', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'certificate_chain', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ciphers', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'context', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'private_key', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'private_key_password', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'wrap', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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'} [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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'} [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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 0x7fca7d9a5680> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter._abc_impl', <_abc._abc_data object at 0x7fca7d9a5680>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_cert_dict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(env_prefix, parsed_cert)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_cert_dict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_dn_dict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(env_prefix, cert_value)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_dn_dict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_san_dict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(env_prefix, cert_value)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter._make_env_san_dict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.bind [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Wrap and return the given socket.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.certificate [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The file name of the server SSL certificate.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.certificate_chain [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate_chain') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate_chain', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.certificate_chain', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The file name of the certificate chain file.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.ciphers [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'ciphers') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.ciphers', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.ciphers', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The ciphers list of SSL.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.context [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'context') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.ssl.builtin.BuiltinSSLAdapter.context', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.ssl.builtin.BuiltinSSLAdapter.context', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, [':py:class:`~ssl.SSLContext` that will be used to wrap sockets.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.get_environ [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create WSGI environ entries to be merged into each request.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.makefile [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'makefile') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='r', bufsize=8192)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return socket file object.', '']) [autodoc] from cheroot.ssl.builtin import BuiltinSSLAdapter.private_key [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'BuiltinSSLAdapter') [autodoc] => [autodoc] getattr(_, 'private_key') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["The file name of the server's private key file.", '']) [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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key_password', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.builtin.BuiltinSSLAdapter.private_key_password', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Optional passphrase for password protected private key.', '']) [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-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.wrap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.builtin.BuiltinSSLAdapter.wrap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Wrap and return the given socket, plus WSGI environ entries.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._assert_ssl_exc_contains', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(exc, *msgs)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._assert_ssl_exc_contains', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check whether SSL exception contains either of messages provided.', '']) [autodoc] from cheroot.ssl.builtin import _loopback_for_cert [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_loopback_for_cert') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._loopback_for_cert', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(certificate, private_key, certificate_chain, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._loopback_for_cert', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create a loopback connection to parse a cert with a private key.', '']) [autodoc] from cheroot.ssl.builtin import _loopback_for_cert_thread [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_loopback_for_cert_thread') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._loopback_for_cert_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(context, server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._loopback_for_cert_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Wrap a socket in ssl and perform the server-side handshake.', '']) [autodoc] from cheroot.ssl.builtin import _parse_cert [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_parse_cert') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._parse_cert', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(certificate, private_key, certificate_chain, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._parse_cert', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Parse a certificate.', '']) [autodoc] from cheroot.ssl.builtin import _sni_callback [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, '_sni_callback') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.ssl.builtin._sni_callback', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock, sni, context)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.ssl.builtin._sni_callback', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Handle the SNI callback to tag the socket with the SNI.', '']) [autodoc] from cheroot.ssl.builtin import suppress [autodoc] import cheroot.ssl.builtin => [autodoc] getattr(_, 'suppress') [autodoc] => [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=8192) :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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.ssl.pyopenssl.rst:4: input: .. automodule:: cheroot.ssl.pyopenssl :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.ssl.pyopenssl [autodoc] import cheroot.ssl.pyopenssl => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.ssl.pyopenssl', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.ssl.pyopenssl', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'OpenSSL', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SSL', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SSLConnection', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SSLConnectionProxyMeta', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SSLFileobjectMixin', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SSLFileobjectStreamReader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SSLFileobjectStreamWriter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'StreamReader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'StreamWriter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/__pycache__/pyopenssl.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/pyopenssl.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7d6142f0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.ssl.pyopenssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.ssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.ssl.pyopenssl', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7d6142f0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/ssl/pyopenssl.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_warn', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'crypto', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pyOpenSSLAdapter', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ssl_conn_type', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLConnection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLConnection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLConnection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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 0x7fca7d0ac860>, 'pending': .lock_decorator..proxy_wrapper at 0x7fca7d0ac900>, 'send': .lock_decorator..proxy_wrapper at 0x7fca7d0ac9a0>, 'write': .lock_decorator..proxy_wrapper at 0x7fca7d0aca40>, 'recv': .lock_decorator..proxy_wrapper at 0x7fca7d0acae0>, 'read': .lock_decorator..proxy_wrapper at 0x7fca7d0acb80>, 'renegotiate': .lock_decorator..proxy_wrapper at 0x7fca7d0acc20>, 'bind': .lock_decorator..proxy_wrapper at 0x7fca7d0accc0>, 'listen': .lock_decorator..proxy_wrapper at 0x7fca7d0acd60>, 'connect': .lock_decorator..proxy_wrapper at 0x7fca7d0ace00>, 'accept': .lock_decorator..proxy_wrapper at 0x7fca7d0acea0>, 'setblocking': .lock_decorator..proxy_wrapper at 0x7fca7d0acf40>, 'fileno': .lock_decorator..proxy_wrapper at 0x7fca7d0acfe0>, 'close': .lock_decorator..proxy_wrapper at 0x7fca7d0ad080>, 'get_cipher_list': .lock_decorator..proxy_wrapper at 0x7fca7d0ad120>, 'getpeername': .lock_decorator..proxy_wrapper at 0x7fca7d0ad1c0>, 'getsockname': .lock_decorator..proxy_wrapper at 0x7fca7d0ad260>, 'getsockopt': .lock_decorator..proxy_wrapper at 0x7fca7d0ad300>, 'setsockopt': .lock_decorator..proxy_wrapper at 0x7fca7d0ad3a0>, 'makefile': .lock_decorator..proxy_wrapper at 0x7fca7d0ad440>, 'get_app_data': .lock_decorator..proxy_wrapper at 0x7fca7d0ad4e0>, 'set_app_data': .lock_decorator..proxy_wrapper at 0x7fca7d0ad580>, 'state_string': .lock_decorator..proxy_wrapper at 0x7fca7d0ad620>, 'sock_shutdown': .lock_decorator..proxy_wrapper at 0x7fca7d0ad6c0>, 'get_peer_certificate': .lock_decorator..proxy_wrapper at 0x7fca7d0ad760>, 'want_read': .lock_decorator..proxy_wrapper at 0x7fca7d0ad800>, 'want_write': .lock_decorator..proxy_wrapper at 0x7fca7d0ad8a0>, 'set_connect_state': .lock_decorator..proxy_wrapper at 0x7fca7d0ad940>, 'set_accept_state': .lock_decorator..proxy_wrapper at 0x7fca7d0ad9e0>, 'connect_ex': .lock_decorator..proxy_wrapper at 0x7fca7d0ada80>, 'sendall': .lock_decorator..proxy_wrapper at 0x7fca7d0adb20>, 'settimeout': .lock_decorator..proxy_wrapper at 0x7fca7d0adbc0>, 'gettimeout': .lock_decorator..proxy_wrapper at 0x7fca7d0adc60>, 'shutdown': .lock_decorator..proxy_wrapper at 0x7fca7d0add00>, 'family': , '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 260, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_lock', '_ssl_conn'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'accept', .lock_decorator..proxy_wrapper at 0x7fca7d0acea0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind', .lock_decorator..proxy_wrapper at 0x7fca7d0accc0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', .lock_decorator..proxy_wrapper at 0x7fca7d0ad080>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'connect', .lock_decorator..proxy_wrapper at 0x7fca7d0ace00>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'connect_ex', .lock_decorator..proxy_wrapper at 0x7fca7d0ada80>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'family', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'fileno', .lock_decorator..proxy_wrapper at 0x7fca7d0acfe0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_app_data', .lock_decorator..proxy_wrapper at 0x7fca7d0ad4e0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_cipher_list', .lock_decorator..proxy_wrapper at 0x7fca7d0ad120>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_context', .lock_decorator..proxy_wrapper at 0x7fca7d0ac860>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_peer_certificate', .lock_decorator..proxy_wrapper at 0x7fca7d0ad760>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'getpeername', .lock_decorator..proxy_wrapper at 0x7fca7d0ad1c0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'getsockname', .lock_decorator..proxy_wrapper at 0x7fca7d0ad260>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'getsockopt', .lock_decorator..proxy_wrapper at 0x7fca7d0ad300>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'gettimeout', .lock_decorator..proxy_wrapper at 0x7fca7d0adc60>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'listen', .lock_decorator..proxy_wrapper at 0x7fca7d0acd60>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', .lock_decorator..proxy_wrapper at 0x7fca7d0ad440>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'pending', .lock_decorator..proxy_wrapper at 0x7fca7d0ac900>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'read', .lock_decorator..proxy_wrapper at 0x7fca7d0acb80>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'recv', .lock_decorator..proxy_wrapper at 0x7fca7d0acae0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'renegotiate', .lock_decorator..proxy_wrapper at 0x7fca7d0acc20>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'send', .lock_decorator..proxy_wrapper at 0x7fca7d0ac9a0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'sendall', .lock_decorator..proxy_wrapper at 0x7fca7d0adb20>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'set_accept_state', .lock_decorator..proxy_wrapper at 0x7fca7d0ad9e0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'set_app_data', .lock_decorator..proxy_wrapper at 0x7fca7d0ad580>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'set_connect_state', .lock_decorator..proxy_wrapper at 0x7fca7d0ad940>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'setblocking', .lock_decorator..proxy_wrapper at 0x7fca7d0acf40>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'setsockopt', .lock_decorator..proxy_wrapper at 0x7fca7d0ad3a0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'settimeout', .lock_decorator..proxy_wrapper at 0x7fca7d0adbc0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'shutdown', .lock_decorator..proxy_wrapper at 0x7fca7d0add00>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'sock_shutdown', .lock_decorator..proxy_wrapper at 0x7fca7d0ad6c0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'state_string', .lock_decorator..proxy_wrapper at 0x7fca7d0ad620>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'want_read', .lock_decorator..proxy_wrapper at 0x7fca7d0ad800>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'want_write', .lock_decorator..proxy_wrapper at 0x7fca7d0ad8a0>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'write', .lock_decorator..proxy_wrapper at 0x7fca7d0aca40>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7d0acea0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0acea0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.accept', .lock_decorator..proxy_wrapper at 0x7fca7d0acea0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.accept', .lock_decorator..proxy_wrapper at 0x7fca7d0acea0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0accc0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0accc0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.bind', .lock_decorator..proxy_wrapper at 0x7fca7d0accc0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.bind', .lock_decorator..proxy_wrapper at 0x7fca7d0accc0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad080> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad080>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.close', .lock_decorator..proxy_wrapper at 0x7fca7d0ad080>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.close', .lock_decorator..proxy_wrapper at 0x7fca7d0ad080>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ace00> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ace00>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect', .lock_decorator..proxy_wrapper at 0x7fca7d0ace00>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect', .lock_decorator..proxy_wrapper at 0x7fca7d0ace00>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ada80> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ada80>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect_ex', .lock_decorator..proxy_wrapper at 0x7fca7d0ada80>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.connect_ex', .lock_decorator..proxy_wrapper at 0x7fca7d0ada80>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.ssl.pyopenssl import SSLConnection.family [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnection') [autodoc] => [autodoc] getattr(_, 'family') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(.make_property..proxy_prop_wrapper at 0x7fca7d0ade40>, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.ssl.pyopenssl.SSLConnection.family', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.ssl.pyopenssl.SSLConnection.family', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0acfe0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0acfe0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.fileno', .lock_decorator..proxy_wrapper at 0x7fca7d0acfe0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.fileno', .lock_decorator..proxy_wrapper at 0x7fca7d0acfe0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad4e0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad4e0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_app_data', .lock_decorator..proxy_wrapper at 0x7fca7d0ad4e0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_app_data', .lock_decorator..proxy_wrapper at 0x7fca7d0ad4e0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad120> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad120>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_cipher_list', .lock_decorator..proxy_wrapper at 0x7fca7d0ad120>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_cipher_list', .lock_decorator..proxy_wrapper at 0x7fca7d0ad120>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ac860> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ac860>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_context', .lock_decorator..proxy_wrapper at 0x7fca7d0ac860>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_context', .lock_decorator..proxy_wrapper at 0x7fca7d0ac860>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad760> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad760>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_peer_certificate', .lock_decorator..proxy_wrapper at 0x7fca7d0ad760>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.get_peer_certificate', .lock_decorator..proxy_wrapper at 0x7fca7d0ad760>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad1c0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad1c0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getpeername', .lock_decorator..proxy_wrapper at 0x7fca7d0ad1c0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getpeername', .lock_decorator..proxy_wrapper at 0x7fca7d0ad1c0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad260> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad260>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockname', .lock_decorator..proxy_wrapper at 0x7fca7d0ad260>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockname', .lock_decorator..proxy_wrapper at 0x7fca7d0ad260>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad300> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad300>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockopt', .lock_decorator..proxy_wrapper at 0x7fca7d0ad300>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.getsockopt', .lock_decorator..proxy_wrapper at 0x7fca7d0ad300>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0adc60> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0adc60>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.gettimeout', .lock_decorator..proxy_wrapper at 0x7fca7d0adc60>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.gettimeout', .lock_decorator..proxy_wrapper at 0x7fca7d0adc60>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0acd60> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0acd60>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.listen', .lock_decorator..proxy_wrapper at 0x7fca7d0acd60>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.listen', .lock_decorator..proxy_wrapper at 0x7fca7d0acd60>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad440> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad440>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.makefile', .lock_decorator..proxy_wrapper at 0x7fca7d0ad440>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.makefile', .lock_decorator..proxy_wrapper at 0x7fca7d0ad440>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ac900> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ac900>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.pending', .lock_decorator..proxy_wrapper at 0x7fca7d0ac900>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.pending', .lock_decorator..proxy_wrapper at 0x7fca7d0ac900>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0acb80> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0acb80>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.read', .lock_decorator..proxy_wrapper at 0x7fca7d0acb80>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.read', .lock_decorator..proxy_wrapper at 0x7fca7d0acb80>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0acae0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0acae0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.recv', .lock_decorator..proxy_wrapper at 0x7fca7d0acae0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.recv', .lock_decorator..proxy_wrapper at 0x7fca7d0acae0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0acc20> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0acc20>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.renegotiate', .lock_decorator..proxy_wrapper at 0x7fca7d0acc20>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.renegotiate', .lock_decorator..proxy_wrapper at 0x7fca7d0acc20>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ac9a0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ac9a0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.send', .lock_decorator..proxy_wrapper at 0x7fca7d0ac9a0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.send', .lock_decorator..proxy_wrapper at 0x7fca7d0ac9a0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0adb20> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0adb20>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sendall', .lock_decorator..proxy_wrapper at 0x7fca7d0adb20>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sendall', .lock_decorator..proxy_wrapper at 0x7fca7d0adb20>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad9e0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad9e0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_accept_state', .lock_decorator..proxy_wrapper at 0x7fca7d0ad9e0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_accept_state', .lock_decorator..proxy_wrapper at 0x7fca7d0ad9e0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad580> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad580>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_app_data', .lock_decorator..proxy_wrapper at 0x7fca7d0ad580>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_app_data', .lock_decorator..proxy_wrapper at 0x7fca7d0ad580>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad940> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad940>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_connect_state', .lock_decorator..proxy_wrapper at 0x7fca7d0ad940>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.set_connect_state', .lock_decorator..proxy_wrapper at 0x7fca7d0ad940>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0acf40> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0acf40>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setblocking', .lock_decorator..proxy_wrapper at 0x7fca7d0acf40>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setblocking', .lock_decorator..proxy_wrapper at 0x7fca7d0acf40>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad3a0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad3a0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setsockopt', .lock_decorator..proxy_wrapper at 0x7fca7d0ad3a0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.setsockopt', .lock_decorator..proxy_wrapper at 0x7fca7d0ad3a0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0adbc0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0adbc0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.settimeout', .lock_decorator..proxy_wrapper at 0x7fca7d0adbc0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.settimeout', .lock_decorator..proxy_wrapper at 0x7fca7d0adbc0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0add00> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0add00>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.shutdown', .lock_decorator..proxy_wrapper at 0x7fca7d0add00>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.shutdown', .lock_decorator..proxy_wrapper at 0x7fca7d0add00>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad6c0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad6c0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sock_shutdown', .lock_decorator..proxy_wrapper at 0x7fca7d0ad6c0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.sock_shutdown', .lock_decorator..proxy_wrapper at 0x7fca7d0ad6c0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad620> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad620>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.state_string', .lock_decorator..proxy_wrapper at 0x7fca7d0ad620>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.state_string', .lock_decorator..proxy_wrapper at 0x7fca7d0ad620>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad800> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad800>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_read', .lock_decorator..proxy_wrapper at 0x7fca7d0ad800>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_read', .lock_decorator..proxy_wrapper at 0x7fca7d0ad800>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0ad8a0> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0ad8a0>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_write', .lock_decorator..proxy_wrapper at 0x7fca7d0ad8a0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.want_write', .lock_decorator..proxy_wrapper at 0x7fca7d0ad8a0>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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 0x7fca7d0aca40> [app] emitting event: 'autodoc-before-process-signature'(.lock_decorator..proxy_wrapper at 0x7fca7d0aca40>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLConnection.write', .lock_decorator..proxy_wrapper at 0x7fca7d0aca40>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLConnection.write', .lock_decorator..proxy_wrapper at 0x7fca7d0aca40>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.ssl.pyopenssl import SSLConnectionProxyMeta [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLConnectionProxyMeta') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLConnectionProxyMeta', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(name, bases, nmspc)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLConnectionProxyMeta', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLConnectionProxyMeta', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Metaclass for generating a bunch of proxy methods.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Metaclass for generating a bunch of proxy methods.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 179, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__new__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLFileobjectMixin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Base mixin for a TLS socket stream.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Base mixin for a TLS socket stream.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 81, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_safe_call', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'readline', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'recv', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'send', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'sendall', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_retry', 0.01, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_timeout', 3, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin._safe_call [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, '_safe_call') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin._safe_call', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(is_reader, call, *args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin._safe_call', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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).', '']) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.readline [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'readline') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size=-1)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.readline', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Receive message of a size from the socket.', '', 'Matches the following interface:', 'https://docs.python.org/3/library/io.html#io.IOBase.readline', '']) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.recv [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'recv') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.recv', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.recv', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Receive message of a size from the socket.', '']) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.send [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'send') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.send', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.send', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Send some part of message to the socket.', '']) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectMixin.sendall [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectMixin') [autodoc] => [autodoc] getattr(_, 'sendall') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.sendall', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args, **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.sendall', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Send whole message to the socket.', '']) [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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.ssl_retry', 0.01, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectMixin.ssl_timeout', 3, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectStreamReader [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectStreamReader') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='r', bufsize=8192)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLFileobjectStreamReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, [, ]) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamReader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['SSL file object attached to a socket object.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'SSL file object attached to a socket object.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 171, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7d42a300>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7d42a300> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamReader._abc_impl', <_abc._abc_data object at 0x7fca7d42a300>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.ssl.pyopenssl import SSLFileobjectStreamWriter [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'SSLFileobjectStreamWriter') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='w', bufsize=8192)", None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, [, ]) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['SSL file object attached to a socket object.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'SSL file object attached to a socket object.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 175, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7d42a380>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7d42a380> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.SSLFileobjectStreamWriter._abc_impl', <_abc._abc_data object at 0x7fca7d42a380>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(certificate, private_key, certificate_chain=None, ciphers=None, *, private_key_password=None)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.ssl.pyopenssl.pyOpenSSLAdapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A wrapper for integrating :doc:`pyOpenSSL `.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__abstractmethods__', frozenset(), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A wrapper for integrating :doc:`pyOpenSSL `.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 274, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.ssl.pyopenssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_environ', 'context'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_abc_impl', <_abc._abc_data object at 0x7fca7d0b0a00>, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_password_callback', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'bind', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'certificate', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'certificate_chain', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ciphers', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'context', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_context', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'makefile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'private_key', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'private_key_password', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'wrap', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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 0x7fca7d0b0a00> [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter._abc_impl', <_abc._abc_data object at 0x7fca7d0b0a00>, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter._password_callback [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, '_password_callback') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter._password_callback', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(password_max_length, _verify_twice, password, /)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter._password_callback', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Pass a passphrase to password protected private key.', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.bind [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'bind') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.bind', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Wrap and return the given socket.', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.certificate [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["The file name of the server's TLS certificate.", '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.certificate_chain [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'certificate_chain') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate_chain', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.certificate_chain', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["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.', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.ciphers [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'ciphers') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.ciphers', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.ciphers', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The ciphers list of TLS.', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.context [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'context') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.context', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.context', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['An instance of :py:class:`SSL.Context `.', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.get_context [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'get_context') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_context', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_context', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return an ``SSL.Context`` from self attributes.', '', 'Ref: :py:class:`SSL.Context `', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.get_environ [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return WSGI environ entries to be merged into each request.', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.makefile [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'makefile') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(sock, mode='r', bufsize=-1)", None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return socket file object.', '']) [autodoc] from cheroot.ssl.pyopenssl import pyOpenSSLAdapter.private_key [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'pyOpenSSLAdapter') [autodoc] => [autodoc] getattr(_, 'private_key') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["The file name of the server's private key file.", '']) [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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key_password', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.private_key_password', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Optional passphrase for password protected private key.', '']) [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-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.wrap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(sock)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.ssl.pyopenssl.pyOpenSSLAdapter.wrap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Wrap and return the given socket, plus WSGI environ entries.', '']) [autodoc] from cheroot.ssl.pyopenssl import ssl_conn_type [autodoc] import cheroot.ssl.pyopenssl => [autodoc] getattr(_, 'ssl_conn_type') [autodoc] => [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=8192) :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=8192) :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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.rst:28: input: .. automodule:: cheroot.test :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.test [autodoc] import cheroot.test => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/__init__.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Cheroot test suite.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__init__.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cf40290>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test'], True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cf40290>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test']), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] output: .. py:module:: cheroot.test Cheroot test suite. [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test._pytest_plugin.rst:4: input: .. automodule:: cheroot.test._pytest_plugin :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test._pytest_plugin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/_pytest_plugin.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/_pytest_plugin.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cf40110>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test._pytest_plugin', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test._pytest_plugin', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cf40110>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/_pytest_plugin.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest_load_initial_conftests', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest_version', (8, 3, 5), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(early_config, parser, args)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test._pytest_plugin.pytest_load_initial_conftests', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.conftest.rst:4: input: .. automodule:: cheroot.test.conftest :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.test.conftest [autodoc] import cheroot.test.conftest => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.conftest', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.conftest', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/conftest.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/conftest.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cb230b0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.conftest', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.conftest', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cb230b0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/conftest.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'get_server_client', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'http_request_timeout', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'http_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'make_http_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'native_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'native_server_client', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'native_server_thread', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_native_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_wsgi_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server_client', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server_thread', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.http_request_timeout', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.http_request_timeout', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a common HTTP request timeout for tests with queries.', '']) [autodoc] from cheroot.test.conftest import http_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'http_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Provision a server creator as a fixture.', '']) [autodoc] from cheroot.test.conftest import make_http_server [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'make_http_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.make_http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.make_http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create and start an HTTP server bound to ``bind_addr``.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.native_server_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(native_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.native_server_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create a test client out of given HTTP server.', '']) [autodoc] from cheroot.test.conftest import native_server_thread [autodoc] import cheroot.test.conftest => [autodoc] getattr(_, 'native_server_thread') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.native_server_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(thread_and_native_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.native_server_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Set up and tear down a Cheroot HTTP server instance.', '', 'This exposes the server thread.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.conftest.wsgi_server_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.wsgi_server_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create a test client out of given WSGI server.', '']) [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.wsgi_server_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(thread_and_wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.conftest.wsgi_server_thread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.helper.rst:4: input: .. automodule:: cheroot.test.helper :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.test.helper [autodoc] import cheroot.test.helper => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.helper', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.helper', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A library of helper functions for the Cheroot test suite.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'CherootWebCase', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Controller', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Response', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/helper.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'A library of helper functions for the Cheroot test suite.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/helper.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cbaeab0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.helper', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.helper', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cbaeab0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/helper.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'config', {'bind_addr': ('127.0.0.1', 54583), 'server': 'wsgi', 'wsgi_app': None}, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'datetime', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'log', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'thisdir', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'types', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'webtest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.helper import CherootWebCase [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.helper.CherootWebCase', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(methodName='runTest')", None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.CherootWebCase', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.CherootWebCase', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Helper class for a web app test suite.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Helper class for a web app test suite.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 28, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_classSetupFailed', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_class_cleanups', [], False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertEqualDates', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'available_servers', {'wsgi': , 'native': }, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'date_tolerance', 2, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'scheme', 'http', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'script_name', '', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'setup_class', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'start', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'stop', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'teardown_class', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.helper import CherootWebCase._classSetupFailed [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, '_classSetupFailed') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase._classSetupFailed', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.helper import CherootWebCase._class_cleanups [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, '_class_cleanups') [autodoc] => [] [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase._class_cleanups', [], {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.helper import CherootWebCase.assertEqualDates [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'assertEqualDates') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.assertEqualDates', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(dt1, dt2, seconds=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.assertEqualDates', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Assert ``abs(dt1 - dt2)`` is within ``Y`` seconds.', '']) [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': } [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.available_servers', {'wsgi': , 'native': }, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.helper import CherootWebCase.date_tolerance [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'date_tolerance') [autodoc] => 2 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.date_tolerance', 2, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.helper import CherootWebCase.scheme [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'scheme') [autodoc] => 'http' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.scheme', 'http', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.helper import CherootWebCase.script_name [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'script_name') [autodoc] => '' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.helper.CherootWebCase.script_name', '', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.helper import CherootWebCase.setup_class [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'setup_class') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.setup_class', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.setup_class', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create and run one HTTP server per class.', '']) [autodoc] from cheroot.test.helper import CherootWebCase.start [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'start') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.start', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.start', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Load and start the HTTP server.', '']) [autodoc] from cheroot.test.helper import CherootWebCase.stop [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'CherootWebCase') [autodoc] => [autodoc] getattr(_, 'stop') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.stop', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.stop', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Terminate HTTP server.', '']) [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-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.helper.CherootWebCase.teardown_class', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.CherootWebCase.teardown_class', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Cleanup HTTP server.', '']) [autodoc] from cheroot.test.helper import Controller [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'Controller') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.helper.Controller', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.Controller', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.Controller', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['WSGI app for tests.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'WSGI app for tests.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 138, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.helper import Request [autodoc] import cheroot.test.helper => [autodoc] getattr(_, 'Request') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.helper.Request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(environ)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.Request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.Request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['HTTP request container.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'HTTP request container.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 110, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('environ',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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.Response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.helper.Response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.helper.Response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['HTTP response container.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'HTTP response container.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 118, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.helper', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('body', 'headers', 'status'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'output', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.helper.Response.output', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test__compat.rst:4: input: .. automodule:: cheroot.test.test__compat :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test__compat', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test__compat.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Test suite for cross-python compatibility helpers.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test__compat.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7ca46810>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test__compat', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test__compat', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7ca46810>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test__compat.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'extract_bytes', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntou', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_compat_functions_negative_nonnative', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_compat_functions_positive', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_extract_bytes', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_extract_bytes_invalid', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_ntou_escape', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(func)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_compat_functions_negative_nonnative', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that compatibility functions fail loudly for incorrect input.', '']) [autodoc] from cheroot.test.test__compat import test_compat_functions_positive [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_compat_functions_positive') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_compat_functions_positive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(func, inp, out)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_compat_functions_positive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that compatibility functions work with correct input.', '']) [autodoc] from cheroot.test.test__compat import test_extract_bytes [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_extract_bytes') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_extract_bytes', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(input_argument, expected_result)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_extract_bytes', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that legitimate inputs produce bytes.', '']) [autodoc] from cheroot.test.test__compat import test_extract_bytes_invalid [autodoc] import cheroot.test.test__compat => [autodoc] getattr(_, 'test_extract_bytes_invalid') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test__compat.test_extract_bytes_invalid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_extract_bytes_invalid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Ensure that invalid input causes exception to be raised.', '']) [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_ntou_escape', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test__compat.test_ntou_escape', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_cli.rst:4: input: .. automodule:: cheroot.test.test_cli :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_cli', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Tests to verify the command line interface.', '', '.. spelling::', '', ' cli', '']) [app] emitting event: 'autodoc-skip-member'('module', 'Application', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_cli.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests to verify the command line interface.\n\n.. spelling::\n\n cli\n', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_cli.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cab02f0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_cli', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_cli', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cab02f0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_cli.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'parse_wsgi_bind_addr', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_Aplication_resolve', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_wsgi_bind_addr', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_app', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_cli.test_Aplication_resolve', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(app_name, app_method, wsgi_app)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_cli.test_Aplication_resolve', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check the wsgi application name conversion.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(raw_bind_addr, expected_bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_cli.test_parse_wsgi_bind_addr', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check the parsing of the --bind option.', '', 'Verify some of the supported addresses and the expected return value.', '']) [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.wsgi_app', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_cli.wsgi_app', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_conn.rst:4: input: .. automodule:: cheroot.test.test_conn :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Tests for TCP connection handling, including proper and timely close.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'Controller', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ErrorLogMonitor', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'FaultyGetMap', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'FaultySelect', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_CI', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYPY', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SLOW_ENV', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WSGICallables', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_conn.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for TCP connection handling, including proper and timely close.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_conn.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cab1910>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_conn', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_conn', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cab1910>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_conn.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_matches_pattern', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_suppress_exceptions', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'header_exists', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'header_has_value', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'helper', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'namedtuple', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pov', 'pPeErRsSiIsStTeEnNcCeE oOfF vViIsSiIoOnN', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'raw_testing_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_100_Continue', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_598', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_Chunked_Encoding', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_Content_Length_in', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_Content_Length_not_int', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_Content_Length_out', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_Timeout', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_Timeout_after_request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_persistent_connections', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_HTTP11_pipelining', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_No_CRLF', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_No_Message_Body', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_broken_connection_during_http_communication_fallback', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_broken_connection_during_tcp_fin', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_client', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_invalid_selected_connection', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_kb_int_from_http_handler', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_keepalive', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_keepalive_conn_management', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_readall_or_close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_remains_alive_post_unhandled_exception', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_streaming_10', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_streaming_11', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_unhandled_exception_in_request_handler', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'timeout', 1, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'traceback_', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'trim', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'unwrap', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'webtest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_conn import Controller [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'Controller') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.Controller', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.Controller', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.Controller', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Controller for serving WSGI apps.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for serving WSGI apps.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 110, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.test_conn import ErrorLogMonitor [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'ErrorLogMonitor') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.ErrorLogMonitor', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.ErrorLogMonitor', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.ErrorLogMonitor', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Mock class to access the server error_log calls made by the server.', '']) [app] emitting event: 'autodoc-skip-member'('class', 'ErrorLogCall', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Mock class to access the server error_log calls made by the server.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 130, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('calls', 'ignored_msgs'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(msg, level, traceback)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'ErrorLogCall(msg, level, traceback)', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__getnewargs__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__match_args__', ('msg', 'level', 'traceback'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__new__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__replace__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__repr__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__slots__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_asdict', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_field_defaults', {}, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_fields', ('msg', 'level', 'traceback'), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_make', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_replace', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'level', _tuplegetter(1, 'Alias for field number 1'), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'msg', _tuplegetter(0, 'Alias for field number 0'), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'traceback', _tuplegetter(2, 'Alias for field number 2'), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._asdict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._asdict', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a new dict which maps field names to their values.', '']) [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] => {} [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._field_defaults', {}, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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') [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._fields', ('msg', 'level', 'traceback'), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._make', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(iterable)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._make', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Make a new ErrorLogCall object from a sequence or iterable', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._replace', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(**kwds)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall._replace', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a new ErrorLogCall object replacing specified fields with new values', '']) [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') [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.level', _tuplegetter(1, 'Alias for field number 1'), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.level', _tuplegetter(1, 'Alias for field number 1'), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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') [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.msg', _tuplegetter(0, 'Alias for field number 0'), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.msg', _tuplegetter(0, 'Alias for field number 0'), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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-process-signature'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.traceback', _tuplegetter(2, 'Alias for field number 2'), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.test_conn.ErrorLogMonitor.ErrorLogCall.traceback', _tuplegetter(2, 'Alias for field number 2'), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Alias for field number 2', '']) [autodoc] from cheroot.test.test_conn import FaultyGetMap [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'FaultyGetMap') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.FaultyGetMap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(original_get_map)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.FaultyGetMap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.FaultyGetMap', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Mock class to insert errors in the selector.get_map method.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Mock class to insert errors in the selector.get_map method.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1572, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('conn_closed', 'original_get_map', 'sabotage_conn'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_conn import FaultySelect [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'FaultySelect') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.FaultySelect', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(original_select)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.FaultySelect', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.FaultySelect', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Mock class to insert errors in the selector.select method.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Mock class to insert errors in the selector.select method.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1554, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('original_select', 'os_error_triggered', 'request_served'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_conn import WSGICallables [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_conn.WSGICallables', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_conn.WSGICallables', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_conn.WSGICallables', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Standalone WSGI apps.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Standalone WSGI apps.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 30, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_conn', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_munge', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'custom_204', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'custom_304', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'err_before_read', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'hello', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'one_megabyte_of_a', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'pov', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'stream', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'upload', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'wrong_cl_buffered', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'wrong_cl_unbuffered', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_conn import WSGICallables._munge [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, '_munge') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables._munge', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(string)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables._munge', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.custom_204', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.custom_204', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render response with status 204.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.custom_304', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.custom_304', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render response with status 304.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.err_before_read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.err_before_read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render response with status 500.', '']) [autodoc] from cheroot.test.test_conn import WSGICallables.hello [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'hello') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.hello', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.hello', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render Hello world.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.one_megabyte_of_a', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render 1MB response.', '']) [autodoc] from cheroot.test.test_conn import WSGICallables.pov [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'pov') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.pov', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.pov', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render ``pov`` value.', '']) [autodoc] from cheroot.test.test_conn import WSGICallables.stream [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'stream') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.stream', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.stream', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render streaming response.', '']) [autodoc] from cheroot.test.test_conn import WSGICallables.upload [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'upload') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.upload', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.upload', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Process file upload and render thank.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_conn.WSGICallables.wrong_cl_buffered', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.wrong_cl_buffered', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render buffered response with invalid length value.', '']) [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.wrong_cl_unbuffered', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_conn.WSGICallables.wrong_cl_unbuffered', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render unbuffered response with invalid length value.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.header_exists', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(header_name, headers)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.header_exists', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that a header is present.', '']) [autodoc] from cheroot.test.test_conn import header_has_value [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'header_has_value') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.header_has_value', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(header_name, header_value, headers)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.header_has_value', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that a header with a given value is present.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.raw_testing_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.raw_testing_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Attach a WSGI app to the given server and preconfigure it.', '']) [autodoc] from cheroot.test.test_conn import test_100_Continue [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_100_Continue') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_100_Continue', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_100_Continue', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test 100-continue header processing.', '']) [autodoc] from cheroot.test.test_conn import test_598 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_598') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_598', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_598', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test serving large file with a read timeout in place.', '']) [autodoc] from cheroot.test.test_conn import test_Chunked_Encoding [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_Chunked_Encoding') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_Chunked_Encoding', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_Chunked_Encoding', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test HTTP uploads with chunked transfer-encoding.', '']) [autodoc] from cheroot.test.test_conn import test_Content_Length_in [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_Content_Length_in') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_Content_Length_in', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_Content_Length_in', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Try a non-chunked request where Content-Length exceeds limit.', '', '(server.max_request_body_size).', 'Assert error before body send.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_Content_Length_not_int', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test that malicious Content-Length header returns 400.', '']) [autodoc] from cheroot.test.test_conn import test_Content_Length_out [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_Content_Length_out') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_Content_Length_out', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test response with Content-Length less than the response body.', '', '(non-chunked response)', '']) [autodoc] from cheroot.test.test_conn import test_HTTP11_Timeout [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_HTTP11_Timeout') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_HTTP11_Timeout', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, timeout_before_headers)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_Timeout', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check timeout without sending any data.', '', 'The server will close the connection with a 408.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_Timeout_after_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check timeout after at least one request has succeeded.', '', 'The server should close the connection without 408.', '']) [autodoc] from cheroot.test.test_conn import test_HTTP11_persistent_connections [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_HTTP11_persistent_connections') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_HTTP11_persistent_connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_persistent_connections', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test persistent HTTP/1.1 connections.', '']) [autodoc] from cheroot.test.test_conn import test_HTTP11_pipelining [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_HTTP11_pipelining') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_HTTP11_pipelining', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_HTTP11_pipelining', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test HTTP/1.1 pipelining.', '', ":py:mod:`http.client` doesn't support this directly.", '']) [autodoc] from cheroot.test.test_conn import test_No_CRLF [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_No_CRLF') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_No_CRLF', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, invalid_terminator)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_No_CRLF', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test HTTP queries with no valid CRLF terminators.', '']) [autodoc] from cheroot.test.test_conn import test_No_Message_Body [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_No_Message_Body') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_No_Message_Body', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_No_Message_Body', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test HTTP queries with an empty response body.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test that unhandled internal error cascades into shutdown.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["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.', '']) [autodoc] from cheroot.test.test_conn import test_client [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_client') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(testing_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Get and return a test client out of the given server.', '']) [autodoc] from cheroot.test.test_conn import test_invalid_selected_connection [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_invalid_selected_connection') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_invalid_selected_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_invalid_selected_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test the error handling segment of HTTP connection selection.', '', 'See :py:meth:`cheroot.connections.ConnectionManager.get_conn`.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test that a keyboard interrupt from HTTP handler causes shutdown.', '']) [autodoc] from cheroot.test.test_conn import test_keepalive [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_keepalive') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_keepalive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, http_server_protocol)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_keepalive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test Keep-Alive enabled connections.', '']) [autodoc] from cheroot.test.test_conn import test_keepalive_conn_management [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_keepalive_conn_management') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_keepalive_conn_management', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_keepalive_conn_management', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test management of Keep-Alive connections.', '']) [autodoc] from cheroot.test.test_conn import test_readall_or_close [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_readall_or_close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_readall_or_close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, max_request_body_size)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_readall_or_close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test a max_request_body_size of 0 (the default) and 1001.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Ensure worker threads are resilient to unhandled exceptions.', '']) [autodoc] from cheroot.test.test_conn import test_streaming_10 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_streaming_10') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_streaming_10', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, set_cl)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_streaming_10', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test serving of streaming responses with HTTP/1.0 protocol.', '']) [autodoc] from cheroot.test.test_conn import test_streaming_11 [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'test_streaming_11') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.test_streaming_11', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, set_cl)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.test_streaming_11', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test serving of streaming responses with HTTP/1.1 protocol.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Ensure worker threads are resilient to in-handler exceptions.', '']) [autodoc] from cheroot.test.test_conn import testing_server [autodoc] import cheroot.test.test_conn => [autodoc] getattr(_, 'testing_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_conn.testing_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(raw_testing_server, monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_conn.testing_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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] 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] => [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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_core.rst:4: input: .. automodule:: cheroot.test.test_core :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_core', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Tests for managing HTTP issues (malformed requests, etc).', '']) [app] emitting event: 'autodoc-skip-member'('module', 'CloseController', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'CloseResponse', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_BAD_REQUEST', 400, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_LENGTH_REQUIRED', 411, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_NOT_FOUND', 404, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_OK', 200, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_REQUEST_ENTITY_TOO_LARGE', 413, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTP_VERSION_NOT_SUPPORTED', 505, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HelloController', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WSGICallables', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_core.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for managing HTTP issues (malformed requests, etc).', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_core.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7c7ab950>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_core', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_core', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7c7ab950>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_core.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_get_http_response', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_munge', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'helper', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_client', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_client_with_defaults', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_content_length_required', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_garbage_in', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_http_connect_request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_large_request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_malformed_header', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_malformed_http_method', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_malformed_request_line', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_no_content_length', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_normal_request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_acceptable_uri', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_no_leading_slash_invalid', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_absolute_uri', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_asterisk_uri', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_fragment_uri', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_invalid_uri', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_parse_uri_unsafe_uri', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_query_string_request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_request_line_split_issue_1220', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_send_header_before_closing', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server_close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'testing_server_with_defaults', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_core import CloseController [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'CloseController') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.CloseController', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.CloseController', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.CloseController', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Controller for testing the close callback.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for testing the close callback.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 423, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('req',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.CloseController.close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Close, writing hello.', '']) [autodoc] from cheroot.test.test_core import CloseResponse [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'CloseResponse') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.CloseResponse', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(close)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.CloseResponse', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.CloseResponse', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Dummy empty response to trigger the no body status.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Dummy empty response to trigger the no body status.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 438, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__getitem__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('close', 'headers', 'status'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'output', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.CloseResponse.output', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return self to hook the close method.', '']) [autodoc] from cheroot.test.test_core import HelloController [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'HelloController') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.HelloController', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.HelloController', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.HelloController', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Controller for serving WSGI apps.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for serving WSGI apps.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 58, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.test_core import WSGICallables [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_core.WSGICallables', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_core.WSGICallables', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_core.WSGICallables', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Controller for serving WSGI apps.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Controller for serving WSGI apps.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 29, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_core', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'asterisk', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'body_required', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'hello', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'query_string', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_core import WSGICallables.asterisk [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'asterisk') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.WSGICallables.asterisk', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.asterisk', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render request method value.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.WSGICallables.body_required', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.body_required', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render Hello world or set 411.', '']) [autodoc] from cheroot.test.test_core import WSGICallables.hello [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'WSGICallables') [autodoc] => [autodoc] getattr(_, 'hello') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_core.WSGICallables.hello', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.hello', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render Hello world.', '']) [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.query_string', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req, resp)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_core.WSGICallables.query_string', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Render QUERY_STRING value.', '']) [autodoc] from cheroot.test.test_core import _get_http_response [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, '_get_http_response') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core._get_http_response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(connection, method='GET')", None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core._get_http_response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.test.test_core import _munge [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, '_munge') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core._munge', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(string)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core._munge', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.test.test_core import test_client [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_client') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(testing_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Get and return a test client out of the given server.', '']) [autodoc] from cheroot.test.test_core import test_client_with_defaults [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_client_with_defaults') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_client_with_defaults', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(testing_server_with_defaults)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_client_with_defaults', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Get and return a test client out of the given server.', '']) [autodoc] from cheroot.test.test_core import test_content_length_required [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_content_length_required') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_content_length_required', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_content_length_required', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test POST query with body failing because of missing Content-Length.', '']) [autodoc] from cheroot.test.test_core import test_garbage_in [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_garbage_in') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_garbage_in', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_garbage_in', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test that server sends an error for garbage received over TCP.', '']) [autodoc] from cheroot.test.test_core import test_http_connect_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_http_connect_request') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_http_connect_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_http_connect_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that CONNECT query results in Method Not Allowed status.', '']) [autodoc] from cheroot.test.test_core import test_large_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_large_request') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_large_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client_with_defaults)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_large_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test GET query with maliciously large Content-Length.', '']) [autodoc] from cheroot.test.test_core import test_malformed_header [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_malformed_header') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_malformed_header', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_malformed_header', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that broken HTTP header results in Bad Request.', '']) [autodoc] from cheroot.test.test_core import test_malformed_http_method [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_malformed_http_method') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_malformed_http_method', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_malformed_http_method', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test non-uppercase HTTP method.', '']) [autodoc] from cheroot.test.test_core import test_malformed_request_line [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_malformed_request_line') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_malformed_request_line', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test missing or invalid HTTP version in Request-Line.', '']) [autodoc] from cheroot.test.test_core import test_no_content_length [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_no_content_length') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_no_content_length', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_no_content_length', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test POST query with an empty body being successful.', '']) [autodoc] from cheroot.test.test_core import test_normal_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_normal_request') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_normal_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_normal_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that normal GET query succeeds.', '']) [autodoc] from cheroot.test.test_core import test_parse_acceptable_uri [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_parse_acceptable_uri') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_parse_acceptable_uri', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, uri)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_acceptable_uri', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that server responds with OK to valid GET queries.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client, uri)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_no_leading_slash_invalid', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that server responds with Bad Request to invalid GET queries.', '', 'Invalid request line test case: it should have leading slash (be absolute).', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_absolute_uri', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that server responds with Bad Request to Absolute URI.', '', 'Only proxy servers should allow this.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_asterisk_uri', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that server responds with OK to OPTIONS with "*" Absolute URI.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_fragment_uri', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that server responds with Bad Request to URI with fragment.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_invalid_uri', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that server responds with Bad Request to invalid GET queries.', '', 'Invalid request line test case: it should only contain US-ASCII.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_parse_uri_unsafe_uri', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.test.test_core import test_query_string_request [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'test_query_string_request') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.test_query_string_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_query_string_request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that GET parameter is parsed well.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(test_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_request_line_split_issue_1220', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that HTTP request line of exactly 256 chars length is OK.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(testing_server_close)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.test_send_header_before_closing', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["Test we are actually sending the headers before calling 'close'.", '']) [autodoc] from cheroot.test.test_core import testing_server [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'testing_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.testing_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.testing_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Attach a WSGI app to the given server and preconfigure it.', '']) [autodoc] from cheroot.test.test_core import testing_server_close [autodoc] import cheroot.test.test_core => [autodoc] getattr(_, 'testing_server_close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_core.testing_server_close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.testing_server_close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Attach a WSGI app to the given server and preconfigure it.', '']) [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'('function', 'cheroot.test.test_core.testing_server_with_defaults', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(wsgi_server_client)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_core.testing_server_with_defaults', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_dispatch.rst:4: input: .. automodule:: cheroot.test.test_dispatch :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_dispatch', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Tests for the HTTP server.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'PathInfoDispatcher', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_dispatch.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for the HTTP server.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_dispatch.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7c83a930>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_dispatch', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_dispatch', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7c83a930>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_dispatch.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_dispatch_no_script_name', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_invoke', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_dispatch.test_dispatch_no_script_name', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Dispatch despite lack of ``SCRIPT_NAME`` in environ.', '']) [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.wsgi_invoke', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(app, environ)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_dispatch.wsgi_invoke', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_errors.rst:4: input: .. automodule:: cheroot.test.test_errors :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_errors', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test suite for ``cheroot.errors``.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SOLARIS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_errors.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Test suite for ``cheroot.errors``.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_errors.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7c8d3170>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_errors', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_errors', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7c8d3170>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_errors.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_plat_specific_errors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(err_names, err_nums)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_errors.test_plat_specific_errors', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_makefile.rst:4: input: .. automodule:: cheroot.test.test_makefile :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_makefile', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Tests for :py:mod:`cheroot.makefile`.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'MockSocket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_makefile.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for :py:mod:`cheroot.makefile`.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_makefile.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7c8d3c50>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_makefile', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_makefile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7c8d3c50>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_makefile.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'makefile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_bytes_read', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_bytes_written', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_makefile import MockSocket [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'MockSocket') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_makefile.MockSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_makefile.MockSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_makefile.MockSocket', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A mock socket.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A mock socket.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 6, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_makefile', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('messages',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_decref_socketios', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'recv', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'recv_into', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'send', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_makefile.MockSocket._decref_socketios', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket._decref_socketios', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Emulate socket I/O reference decrement.', '']) [autodoc] from cheroot.test.test_makefile import MockSocket.recv [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'MockSocket') [autodoc] => [autodoc] getattr(_, 'recv') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_makefile.MockSocket.recv', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(size)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket.recv', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Simulate ``recv`` for Python 2.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_makefile.MockSocket.recv_into', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(buf)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket.recv_into', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Simulate ``recv_into`` for Python 3.', '']) [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.send', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(val)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_makefile.MockSocket.send', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Simulate a send.', '']) [autodoc] from cheroot.test.test_makefile import test_bytes_read [autodoc] import cheroot.test.test_makefile => [autodoc] getattr(_, 'test_bytes_read') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_makefile.test_bytes_read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_makefile.test_bytes_read', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Reader should capture bytes read.', '']) [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'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_makefile.test_bytes_written', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_makefile.test_bytes_written', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_server.rst:4: input: .. automodule:: cheroot.test.test_server :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Tests for the HTTP server.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV4', '0.0.0.0', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV6', '::', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'EPHEMERAL_PORT', 0, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPStatus', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SLOW_ENV', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_UID_GID_RESOLVABLE', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PEERCRED_IDS_URI', '/peer_creds/ids', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PEERCRED_TEXTS_URI', '/peer_creds/texts', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PY38_OR_LOWER', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SYS_PLATFORM', 'Linux', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ThreadPool', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_TestGateway', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_server.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for the HTTP server.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_server.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7c636450>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_server', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7c636450>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_server.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_garbage_bin', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'many_open_sockets', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'peercreds_enabled_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'queue', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'requests', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'requests_unixsocket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'resource_limit', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tempfile', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_bind_addr_inet', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_bind_addr_unix', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_bind_addr_unix_abstract', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_high_number_of_file_descriptors', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_overload_results_in_suitable_http_error', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_peercreds_unix_sock', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_peercreds_unix_sock_with_lookup', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_prepare_makes_server_ready', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_reuse_port', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_server_interrupt', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_serving_is_false_and_stop_returns_after_ctrlc', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_stop_interrupts_serve', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_threadpool_invalid_threadrange', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_threadpool_multistart_validation', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_threadpool_threadrange_set', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'types', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'unix_abstract_sock', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'unix_file_sock', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'unix_sock_file', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'uuid', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_server._TestGateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_server._TestGateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_server._TestGateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', None, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 234, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_server', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'send_payload', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.test_server import _TestGateway.respond [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, '_TestGateway') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.test_server._TestGateway.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_server._TestGateway.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Process the current request. Must be overridden in a subclass.', '']) [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.send_payload', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(payload)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_server._TestGateway.send_payload', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.test.test_server import _garbage_bin [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, '_garbage_bin') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server._garbage_bin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server._garbage_bin', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Disable garbage collection when this fixture is in use.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.many_open_sockets', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(request, resource_limit)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.many_open_sockets', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Allocate a lot of file descriptors by opening dummy sockets.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.peercreds_enabled_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(http_server, unix_sock_file)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.peercreds_enabled_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Construct a test server with ``peercreds_enabled``.', '']) [autodoc] from cheroot.test.test_server import resource_limit [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'resource_limit') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.resource_limit', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.resource_limit', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Set the resource limit two times bigger then requested.', '']) [autodoc] from cheroot.test.test_server import test_bind_addr_inet [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_bind_addr_inet') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_bind_addr_inet', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(http_server, ip_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_bind_addr_inet', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that bound IP address is stored in server.', '']) [autodoc] from cheroot.test.test_server import test_bind_addr_unix [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_bind_addr_unix') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_bind_addr_unix', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(http_server, unix_sock_file)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_bind_addr_unix', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that bound UNIX socket address is stored in server.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(http_server, unix_abstract_sock)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_bind_addr_unix_abstract', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that bound UNIX abstract socket address is stored in server.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(native_server_client, resource_limit)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_high_number_of_file_descriptors', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.", '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_overload_results_in_suitable_http_error', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["A server that can't keep up with requests returns a 503 HTTP error.", '']) [autodoc] from cheroot.test.test_server import test_peercreds_unix_sock [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_peercreds_unix_sock') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_peercreds_unix_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(http_request_timeout, peercreds_enabled_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_peercreds_unix_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that ``PEERCRED`` lookup works when enabled.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that ``PEERCRED`` resolution works when enabled.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_prepare_makes_server_ready', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that prepare() makes the server ready, and stop() clears it.', '']) [autodoc] from cheroot.test.test_server import test_reuse_port [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_reuse_port') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_reuse_port', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(http_server, ip_addr, mocker)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_reuse_port', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that port initialized externally can be reused.', '']) [autodoc] from cheroot.test.test_server import test_server_interrupt [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_server_interrupt') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_server_interrupt', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(exc_cls)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_server_interrupt', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that assigning interrupt stops the server.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_serving_is_false_and_stop_returns_after_ctrlc', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that stop() interrupts running of serve().', '']) [autodoc] from cheroot.test.test_server import test_stop_interrupts_serve [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_stop_interrupts_serve') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_stop_interrupts_serve', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_stop_interrupts_serve', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that stop() interrupts running of serve().', '']) [autodoc] from cheroot.test.test_server import test_threadpool_invalid_threadrange [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_threadpool_invalid_threadrange') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_threadpool_invalid_threadrange', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(minthreads, maxthreads, error)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_threadpool_invalid_threadrange', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.test.test_server import test_threadpool_multistart_validation [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_threadpool_multistart_validation') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_threadpool_multistart_validation', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_threadpool_multistart_validation', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test for ThreadPool multi-start behavior.', '', 'Tests that when calling start() on a ThreadPool multiple times raises a', ':exc:`RuntimeError`', '']) [autodoc] from cheroot.test.test_server import test_threadpool_threadrange_set [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'test_threadpool_threadrange_set') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.test_threadpool_threadrange_set', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(minthreads, maxthreads, inited_maxthreads)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.test_threadpool_threadrange_set', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.test.test_server import unix_abstract_sock [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'unix_abstract_sock') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.unix_abstract_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.unix_abstract_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return an abstract UNIX socket address.', '']) [autodoc] from cheroot.test.test_server import unix_file_sock [autodoc] import cheroot.test.test_server => [autodoc] getattr(_, 'unix_file_sock') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.unix_file_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.unix_file_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Yield a UNIX file socket.', '']) [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'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_server.unix_sock_file', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_server.unix_sock_file', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_ssl.rst:4: input: .. automodule:: cheroot.test.test_ssl :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_ssl', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Tests for TLS support.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV4', '0.0.0.0', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV6', '::', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'BestAvailableEncryption', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'EPHEMERAL_PORT', 0, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Encoding', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway_10', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HTTPServer', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'HelloWorldGateway', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL10', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_ABOVE_OPENSSL31', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_CI', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_GITHUB_ACTIONS_WORKFLOW', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LIBRESSL_BACKEND', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_LINUX', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYOPENSSL_SSL_VERSION_1_0', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_PYPY', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SOLARIS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WIN2016', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'OpenSSL', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PY310_PLUS', True, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PY38_OR_LOWER', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PrivateFormat', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'SYS_PLATFORM', 'Linux', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_ssl.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Tests for TLS support.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_ssl.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7c6af590>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_ssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_ssl', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7c6af590>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_ssl.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_get_conn_data', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_probe_ipv6_sock', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_stdlib_to_openssl_verify', {: 0, : 1, : 3}, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_thread_except_hook', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ca', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'default_backend', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'functools', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'get_ssl_adapter_class', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'json', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'load_pem_private_key', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'make_tls_http_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntou', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'private_key_password', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'requests', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ssl', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'subprocess', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_builtin_adapter_with_false_key_password', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_http_over_https_error', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_https_over_http_error', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_openssl_adapter_with_false_key_password', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_ssl_adapters', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_ssl_adapters_with_private_key_password', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_ssl_env', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_tls_client_auth', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'thread_exceptions', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tls_ca_certificate_pem_path', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate_chain_pem_path', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate_passwd_private_key_pem_path', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tls_certificate_private_key_pem_path', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tls_http_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'traceback', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'trustme', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.test_ssl.HelloWorldGateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.test_ssl.HelloWorldGateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.test_ssl.HelloWorldGateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Gateway responding with Hello World to root URI.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Gateway responding with Hello World to root URI.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 105, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.test_ssl', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.test_ssl.HelloWorldGateway.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Respond with dummy content via HTTP.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl._thread_except_hook', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(exceptions, args)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl._thread_except_hook', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Append uncaught exception ``args`` in threads to ``exceptions``.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.ca', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.ca', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Provide a certificate authority via fixture.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.make_tls_http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(bind_addr, ssl_adapter, request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.make_tls_http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create and start an HTTP server bound to ``bind_addr``.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.private_key_password', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.private_key_password', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Provide hardcoded password for private key.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that builtin ssl-adapter initialization fails when wrong private key password given.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Ensure that connecting over HTTP to HTTPS port is handled.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(http_server, ip_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.test_https_over_http_error', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Ensure that connecting over HTTPS to HTTP port is handled.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check that server init fails when wrong private key password given.', '']) [autodoc] from cheroot.test.test_ssl import test_ssl_adapters [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_ssl_adapters') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_ssl_adapters', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test ability to connect to server via HTTPS using adapters.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check server decrypts private TLS keys with password as bytes or str.', '']) [autodoc] from cheroot.test.test_ssl import test_ssl_env [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_ssl_env') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_ssl_env', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test the SSL environment generated by the SSL adapters.', '']) [autodoc] from cheroot.test.test_ssl import test_tls_client_auth [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'test_tls_client_auth') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.test_tls_client_auth', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Verify that client TLS certificate auth works correctly.', '']) [autodoc] from cheroot.test.test_ssl import thread_exceptions [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'thread_exceptions') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.thread_exceptions', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.thread_exceptions', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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))``', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(ca)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_ca_certificate_pem_path', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Provide a certificate authority certificate file via fixture.', '']) [autodoc] from cheroot.test.test_ssl import tls_certificate [autodoc] import cheroot.test.test_ssl => [autodoc] getattr(_, 'tls_certificate') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_certificate', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(ca)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_certificate', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Provide a leaf certificate via fixture.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(tls_certificate)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_certificate_chain_pem_path', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Provide a certificate chain PEM file path via fixture.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a certificate private key PEM file path.', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(tls_certificate)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_certificate_private_key_pem_path', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Provide a certificate private key PEM file path via fixture.', '']) [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'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_ssl.tls_http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(request)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_ssl.tls_http_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.test_wsgi.rst:4: input: .. automodule:: cheroot.test.test_wsgi :members: :undoc-members: :show-inheritance: :private-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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.test_wsgi', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test wsgi.', '']) [app] emitting event: 'autodoc-skip-member'('module', 'IS_MACOS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_SLOW_ENV', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'IS_WINDOWS', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Session', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ThreadPoolExecutor', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/test_wsgi.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Test wsgi.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_wsgi.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7c5789b0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.test_wsgi', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.test_wsgi', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7c5789b0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/test_wsgi.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'portend', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'print_tb', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'requests', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'simple_wsgi_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_connection_keepalive', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_gateway_start_response_called_twice', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'test_gateway_write_needs_start_response_called_before', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_wsgi.simple_wsgi_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.simple_wsgi_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fucking simple wsgi server fixture (duh).', '']) [autodoc] from cheroot.test.test_wsgi import test_connection_keepalive [autodoc] import cheroot.test.test_wsgi => [autodoc] getattr(_, 'test_connection_keepalive') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.test_wsgi.test_connection_keepalive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(simple_wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.test_connection_keepalive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Test the connection keep-alive works (duh).', '']) [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] => [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.test_gateway_start_response_called_twice', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Verify that repeat calls of ``Gateway.start_response()`` fail.', '']) [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.test_gateway_write_needs_start_response_called_before', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(monkeypatch)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.test_wsgi.test_gateway_write_needs_start_response_called_before', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.test.webtest.rst:4: input: .. automodule:: cheroot.test.webtest :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.test.webtest [autodoc] import cheroot.test.webtest => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.test.webtest', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.test.webtest', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ServerError', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WebCase', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/__pycache__/webtest.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/webtest.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cb23530>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.test.webtest', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.test', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.test.webtest', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cb23530>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/test/webtest.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_open_url_once', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'always_iterable', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'cleanHeaders', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'functools', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'getchar', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ignore_all', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ignored_exceptions', [], False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'interface', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'jaraco', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'json', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'methods_with_bodies', ('POST', 'PUT', 'PATCH'), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'openURL', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'os', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pprint', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 're', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'server_error', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'shb', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'strip_netloc', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'termios', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'traceback', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'tty', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'unittest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'urllib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'warnings', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.webtest import NonDataProperty [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'NonDataProperty') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.webtest.NonDataProperty', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(fget)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.webtest.NonDataProperty', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.webtest.NonDataProperty', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Non-data property decorator.', '']) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Non-data property decorator.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 85, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__get__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.webtest', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('fget',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.test.webtest import ServerError [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'ServerError') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('exception', 'cheroot.test.webtest.ServerError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.webtest.ServerError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('exception', 'cheroot.test.webtest.ServerError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Exception for signalling server error.', '']) [app] emitting event: 'autodoc-skip-member'('exception', '__doc__', 'Exception for signalling server error.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__firstlineno__', 582, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__module__', 'cheroot.test.webtest', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('exception', 'on', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.test.webtest.WebCase', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(methodName='runTest')", None) [app] emitting event: 'autodoc-process-bases'('cheroot.test.webtest.WebCase', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.test.webtest.WebCase', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Helper web test suite base.', '']) [app] emitting event: 'autodoc-skip-member'('class', 'HOST', '127.0.0.1', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'HTTP_CONN', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'PORT', 8000, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'PROTOCOL', 'HTTP/1.1', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_Conn', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'Helper web test suite base.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 101, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.test.webtest', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('HTTP_CONN', 'body', 'cookies', 'headers', 'status', 'time', 'url'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_classSetupFailed', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_class_cleanups', [], False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_handlewebError', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertBody', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertHeader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertHeaderIn', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertHeaderItemValue', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertInBody', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertMatchesBody', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertNoHeader', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertNoHeaderItemValue', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertNotInBody', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'assertStatus', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'body', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'console_height', 30, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'encoding', 'utf-8', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'getPage', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_conn', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'headers', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'interactive', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'interface', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'persistent', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'scheme', 'http', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'set_persistent', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ssl_context', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'status', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'status_code', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'status_matches', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'time', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'url', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.HOST', '127.0.0.1', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.PORT', 8000, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase.PROTOCOL [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'PROTOCOL') [autodoc] => 'HTTP/1.1' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.PROTOCOL', 'HTTP/1.1', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase._Conn [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_Conn') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.test.webtest.WebCase._Conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.test.webtest.WebCase._Conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return HTTPConnection or HTTPSConnection based on self.scheme.', '', '* from :py:mod:`python:http.client`.', '']) [autodoc] from cheroot.test.webtest import WebCase._classSetupFailed [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_classSetupFailed') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase._classSetupFailed', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase._class_cleanups [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_class_cleanups') [autodoc] => [] [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase._class_cleanups', [], {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase._handlewebError [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, '_handlewebError') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase._handlewebError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(msg)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase._handlewebError', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.test.webtest import WebCase.assertBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertBody') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if value != self.body.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertHeader [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertHeader') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertHeader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key, value=None, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertHeader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if (key, [value]) not in self.headers.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertHeaderIn [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertHeaderIn') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertHeaderIn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key, values, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertHeaderIn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ["Fail if header indicated by key doesn't have one of the values.", '']) [autodoc] from cheroot.test.webtest import WebCase.assertHeaderItemValue [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertHeaderItemValue') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertHeaderItemValue', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key, value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertHeaderItemValue', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if the header does not contain the specified value.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertInBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertInBody') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertInBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertInBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if value not in self.body.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertMatchesBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertMatchesBody') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertMatchesBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(pattern, msg=None, flags=0)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertMatchesBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if value (a regex pattern) is not in self.body.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertNoHeader [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertNoHeader') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertNoHeader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertNoHeader', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if key in self.headers.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertNoHeaderItemValue [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertNoHeaderItemValue') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertNoHeaderItemValue', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(key, value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertNoHeaderItemValue', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if the header contains the specified value.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertNotInBody [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertNotInBody') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertNotInBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(value, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertNotInBody', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if value in self.body.', '']) [autodoc] from cheroot.test.webtest import WebCase.assertStatus [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'assertStatus') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.assertStatus', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(status, msg=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.assertStatus', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Fail if self.status != status.', '', 'status may be integer code, exact string status, or', 'iterable of allowed possibilities.', '']) [autodoc] from cheroot.test.webtest import WebCase.body [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'body') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.body', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', 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 [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.console_height', 30, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase.encoding [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'encoding') [autodoc] => 'utf-8' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.encoding', 'utf-8', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase.getPage [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'getPage') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.getPage', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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`.', '']) [autodoc] from cheroot.test.webtest import WebCase.get_conn [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'get_conn') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.get_conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(auto_open=False)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.get_conn', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a connection to our HTTP server.', '']) [autodoc] from cheroot.test.webtest import WebCase.headers [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'headers') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.headers', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase.interactive [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'interactive') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.interactive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.test.webtest.WebCase.interactive', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Non-data property decorator.', '']) [autodoc] from cheroot.test.webtest import WebCase.interface [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'interface') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.interface', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.interface', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.", '']) [autodoc] from cheroot.test.webtest import WebCase.persistent [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'persistent') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.test.webtest.WebCase.persistent', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.test.webtest.WebCase.persistent', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Presence of the persistent HTTP connection.', '']) [autodoc] from cheroot.test.webtest import WebCase.scheme [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'scheme') [autodoc] => 'http' [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.scheme', 'http', {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase.set_persistent [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'set_persistent') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.set_persistent', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(on=True, auto_open=False)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.set_persistent', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.test.webtest import WebCase.ssl_context [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'ssl_context') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.ssl_context', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase.status [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'status') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.status', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import WebCase.status_code [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'status_code') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.test.webtest.WebCase.status_code', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.test.webtest.WebCase.status_code', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Integer HTTP status code.', '']) [autodoc] from cheroot.test.webtest import WebCase.status_matches [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'status_matches') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.test.webtest.WebCase.status_matches', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(expected)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.test.webtest.WebCase.status_matches', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Check whether actual status matches expected.', '']) [autodoc] from cheroot.test.webtest import WebCase.time [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'WebCase') [autodoc] => [autodoc] getattr(_, 'time') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.test.webtest.WebCase.time', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', 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.url', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.test.webtest import _open_url_once [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, '_open_url_once') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest._open_url_once', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Open the given HTTP resource and return status, headers, and body.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.cleanHeaders', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(headers, method, body, host, port)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.cleanHeaders', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return request headers, with required headers added (if missing).', '']) [autodoc] from cheroot.test.webtest import getchar [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'getchar') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.getchar', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.getchar', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Get a key press.', '']) [autodoc] from cheroot.test.webtest import interface [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'interface') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.interface', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(host)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.interface', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.", '']) [autodoc] from cheroot.test.webtest import openURL [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'openURL') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.openURL', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(*args, raise_subcls=(), **kwargs)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.openURL', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.test.webtest import server_error [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'server_error') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.server_error', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(exc=None)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.server_error', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.", '']) [autodoc] from cheroot.test.webtest import shb [autodoc] import cheroot.test.webtest => [autodoc] getattr(_, 'shb') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.shb', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(response)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.shb', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return status, headers, body the way we like from a response.', '']) [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'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.test.webtest.strip_netloc', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(url)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.test.webtest.strip_netloc', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', ) [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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.testing.rst:4: input: .. automodule:: cheroot.testing :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.testing [autodoc] import cheroot.testing => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.testing', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.testing', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ANY_INTERFACE_IPV6', '::', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'EPHEMERAL_PORT', 0, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'NO_INTERFACE', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_TestClient', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/testing.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'Pytest fixtures and other helpers for doing testing by end-users.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/testing.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7cb231d0>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.testing', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.testing', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7cb231d0>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/testing.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_get_conn_data', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_probe_ipv6_sock', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'cheroot_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'closing', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'config', {: {'bind_addr': (None, 0), 'wsgi_app': None}, : {'bind_addr': (None, 0), 'gateway': }}, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'contextmanager', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'errno', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'get_server_client', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'http', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'native_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pytest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_native_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'thread_and_wsgi_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'webtest', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.testing import _TestClient [autodoc] import cheroot.testing => [autodoc] getattr(_, '_TestClient') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.testing._TestClient', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.testing._TestClient', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.testing._TestClient', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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, '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', None, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 102, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__getattr__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.testing', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_host', '_http_connection', '_interface', '_port', 'server_instance'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_connection', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'request', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.testing import _TestClient.get_connection [autodoc] import cheroot.testing => [autodoc] getattr(_, '_TestClient') [autodoc] => [autodoc] getattr(_, 'get_connection') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.testing._TestClient.get_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.testing._TestClient.get_connection', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [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.request', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, "(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.testing import _get_conn_data [autodoc] import cheroot.testing => [autodoc] getattr(_, '_get_conn_data') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing._get_conn_data', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(bind_addr)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing._get_conn_data', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.testing import _probe_ipv6_sock [autodoc] import cheroot.testing => [autodoc] getattr(_, '_probe_ipv6_sock') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing._probe_ipv6_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(interface)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing._probe_ipv6_sock', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.testing import cheroot_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'cheroot_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.cheroot_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server_factory)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.cheroot_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Set up and tear down a Cheroot server instance.', '']) [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] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.get_server_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.get_server_client', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create and return a test client for the given server.', '']) [autodoc] from cheroot.testing import native_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'native_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.native_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(thread_and_native_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.native_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Set up and tear down a Cheroot HTTP server instance.', '']) [autodoc] from cheroot.testing import thread_and_native_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'thread_and_native_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.thread_and_native_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.thread_and_native_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Set up and tear down a Cheroot HTTP server instance.', '', 'This emits a tuple of a thread and a server instance.', '']) [autodoc] from cheroot.testing import thread_and_wsgi_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'thread_and_wsgi_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.thread_and_wsgi_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.thread_and_wsgi_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Set up and tear down a Cheroot WSGI server instance.', '', 'This emits a tuple of a thread and a server instance.', '']) [autodoc] from cheroot.testing import wsgi_server [autodoc] import cheroot.testing => [autodoc] getattr(_, 'wsgi_server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'cheroot.testing.wsgi_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(thread_and_wsgi_server)', None) [app] emitting event: 'autodoc-process-docstring'('function', 'cheroot.testing.wsgi_server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.workers.rst:15: input: .. automodule:: cheroot.workers :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.workers [autodoc] import cheroot.workers => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.workers', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.workers', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers/__pycache__/__init__.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'HTTP workers pool.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers/__init__.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2990>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.workers', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.workers', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__path__', ['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers'], True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.workers', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2990>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers/__init__.py', submodule_search_locations=['/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers']), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threadpool', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] output: .. py:module:: cheroot.workers HTTP workers pool. [app] emitting event: 'doctree-read'(>,) /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.workers.threadpool.rst:4: input: .. automodule:: cheroot.workers.threadpool :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.workers.threadpool [autodoc] import cheroot.workers.threadpool => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.workers.threadpool', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.workers.threadpool', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A thread-based worker pool.', '', '.. spelling::', '', ' joinable', '']) [app] emitting event: 'autodoc-skip-member'('module', 'ThreadPool', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'TrueyZero', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WorkerThread', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '_SHUTDOWNREQUEST', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__all__', ('ThreadPool', 'WorkerThread'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers/__pycache__/threadpool.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__doc__', 'A thread-based worker pool.\n\n.. spelling::\n\n joinable\n', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers/threadpool.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2270>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.workers.threadpool', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot.workers', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.workers.threadpool', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd2270>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/workers/threadpool.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'collections', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'logging', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'pass_none', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'queue', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'socket', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threading', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'time', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'trueyzero', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'warnings', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.workers.threadpool import ThreadPool [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.workers.threadpool.ThreadPool', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.workers.threadpool.ThreadPool', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 225, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.workers.threadpool', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_pending_shutdowns', '_queue', '_queue_put_timeout', '_threads', 'get', 'max', 'min', 'server'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_clear_dead_threads', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_clear_threads', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_force_close', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_spawn_worker', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'grow', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'idle', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'put', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'qsize', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'shrink', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'start', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'stop', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._clear_dead_threads', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._clear_dead_threads', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.workers.threadpool import ThreadPool._clear_threads [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, '_clear_threads') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._clear_threads', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._clear_threads', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Clear self._threads and yield all joinable threads.', '']) [autodoc] from cheroot.workers.threadpool import ThreadPool._force_close [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, '_force_close') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._force_close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(conn)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._force_close', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.workers.threadpool import ThreadPool._spawn_worker [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, '_spawn_worker') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool._spawn_worker', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool._spawn_worker', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [autodoc] from cheroot.workers.threadpool import ThreadPool.grow [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'grow') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.grow', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(amount)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.grow', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Spawn new worker threads (not above self.max).', '']) [autodoc] from cheroot.workers.threadpool import ThreadPool.idle [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'idle') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.workers.threadpool.ThreadPool.idle', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.workers.threadpool.ThreadPool.idle', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Number of worker threads which are idle. Read-only.', '']) [autodoc] from cheroot.workers.threadpool import ThreadPool.put [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'put') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.put', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(obj)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.put', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Put request into queue.', '', 'Args:', ' obj (:py:class:`~cheroot.server.HTTPConnection`): HTTP connection', ' waiting to be processed', '']) [autodoc] from cheroot.workers.threadpool import ThreadPool.qsize [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'qsize') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.workers.threadpool.ThreadPool.qsize', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.workers.threadpool.ThreadPool.qsize', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return the queue size.', '']) [autodoc] from cheroot.workers.threadpool import ThreadPool.shrink [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'shrink') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.shrink', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(amount)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.shrink', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Kill off worker threads (not below self.min).', '']) [autodoc] from cheroot.workers.threadpool import ThreadPool.start [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'ThreadPool') [autodoc] => [autodoc] getattr(_, 'start') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.ThreadPool.start', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.start', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Start the pool of threads.', '', ':raises RuntimeError: if the pool is already started', '']) [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.stop', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(timeout=5)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.ThreadPool.stop', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Terminate all worker threads.', '', 'Args:', ' timeout (int): time to wait for threads to stop gracefully', '']) [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.WorkerThread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(server)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.workers.threadpool.WorkerThread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.workers.threadpool.WorkerThread', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 38, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.workers.threadpool', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_process_connections_until_interrupted', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'conn', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'ready', False, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'run', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'server', None, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.WorkerThread._process_connections_until_interrupted', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.WorkerThread._process_connections_until_interrupted', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [autodoc] from cheroot.workers.threadpool import WorkerThread.conn [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, 'conn') [autodoc] => None [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.workers.threadpool.WorkerThread.conn', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.workers.threadpool.WorkerThread.conn', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The current connection pulled off the Queue, or None.', '']) [autodoc] from cheroot.workers.threadpool import WorkerThread.ready [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, 'ready') [autodoc] => False [app] emitting event: 'autodoc-process-signature'('attribute', 'cheroot.workers.threadpool.WorkerThread.ready', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.workers.threadpool.WorkerThread.ready', False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A simple flag for the calling server to know when this thread', 'has begun polling the Queue.', '']) [autodoc] from cheroot.workers.threadpool import WorkerThread.run [autodoc] import cheroot.workers.threadpool => [autodoc] getattr(_, 'WorkerThread') [autodoc] => [autodoc] getattr(_, 'run') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.workers.threadpool.WorkerThread.run', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.workers.threadpool.WorkerThread.run', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '']) [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-process-signature'('attribute', 'cheroot.workers.threadpool.WorkerThread.server', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.workers.threadpool.WorkerThread.server', None, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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 :undoc-members:\n :show-inheritance:\n :private-members:\n']) [autodoc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/pkg/cheroot.wsgi.rst:4: input: .. automodule:: cheroot.wsgi :members: :undoc-members: :show-inheritance: :private-members: [autodoc] import cheroot.wsgi [autodoc] import cheroot.wsgi => [app] emitting event: 'autodoc-process-signature'('module', 'cheroot.wsgi', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('module', 'cheroot.wsgi', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway_10', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Gateway_u0', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'PathInfoDispatcher', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'Server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIGateway', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIGateway_10', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIGateway_u0', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIPathInfoDispatcher', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'WSGIServer', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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-2024 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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__cached__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/__pycache__/wsgi.cpython-313.pyc', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__file__', '/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/wsgi.py', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd1310>, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'cheroot.wsgi', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__package__', 'cheroot', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', '__spec__', ModuleSpec(name='cheroot.wsgi', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fca7dcd1310>, origin='/builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/cheroot/wsgi.py'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'bton', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'contextlib', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'ntob', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'server', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'sys', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'threadpool', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('module', 'wsgi_gateways', {(1, 0): }, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.wsgi import Gateway [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Gateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.Gateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Gateway', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A base class to interface HTTPServer with WSGI.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A base class to interface HTTPServer with WSGI.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 107, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('env', 'remaining_bytes_out', 'started_response'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '_encode_status', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'gateway_map', >, False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'respond', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'start_response', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'write', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.wsgi import Gateway._encode_status [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, '_encode_status') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway._encode_status', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(status)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway._encode_status', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.wsgi import Gateway.gateway_map [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'gateway_map') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.gateway_map', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.gateway_map', >, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Create a mapping of gateways and their versions.', '', 'Returns:', ' dict[tuple[int,int],class]: map of gateway version and', ' corresponding class', '']) [autodoc] from cheroot.wsgi import Gateway.get_environ [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a new environ dict targeting the given wsgi.version.', '']) [autodoc] from cheroot.wsgi import Gateway.respond [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'respond') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.respond', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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.', '']) [autodoc] from cheroot.wsgi import Gateway.start_response [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway') [autodoc] => [autodoc] getattr(_, 'start_response') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.start_response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(status, headers, exc_info=None)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.start_response', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['WSGI callable to begin the HTTP response.', '']) [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'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(chunk)', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway.write', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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).', '']) [autodoc] from cheroot.wsgi import Gateway_10 [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_10') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Gateway_10', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.Gateway_10', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Gateway_10', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A Gateway class to interface HTTPServer with WSGI 1.0.x.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A Gateway class to interface HTTPServer with WSGI 1.0.x.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 244, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'version', (1, 0), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.wsgi import Gateway_10.get_environ [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_10') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway_10.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway_10.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a new environ dict targeting the given wsgi.version.', '']) [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-process-signature'('attribute', 'cheroot.wsgi.Gateway_10.version', (1, 0), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.wsgi import Gateway_u0 [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_u0') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Gateway_u0', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(req)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.Gateway_u0', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Gateway_u0', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['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', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 326, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'get_environ', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'version', ('u', 0), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.wsgi import Gateway_u0.get_environ [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Gateway_u0') [autodoc] => [autodoc] getattr(_, 'get_environ') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'cheroot.wsgi.Gateway_u0.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '()', None) [app] emitting event: 'autodoc-process-docstring'('method', 'cheroot.wsgi.Gateway_u0.get_environ', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Return a new environ dict targeting the given wsgi.version.', '']) [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-process-signature'('attribute', 'cheroot.wsgi.Gateway_u0.version', ('u', 0), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [autodoc] from cheroot.wsgi import PathInfoDispatcher [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'PathInfoDispatcher') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.PathInfoDispatcher', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(apps)', None) [app] emitting event: 'autodoc-process-bases'('cheroot.wsgi.PathInfoDispatcher', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.PathInfoDispatcher', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A WSGI dispatcher for dispatch based on the PATH_INFO.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__call__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [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__': , '__annotations__': {}}), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A WSGI dispatcher for dispatch based on the PATH_INFO.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 360, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('apps',), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.wsgi import Server [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Server') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'cheroot.wsgi.Server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '(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': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, []) [app] emitting event: 'autodoc-process-docstring'('class', 'cheroot.wsgi.Server', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['A subclass of HTTPServer which calls a WSGI application.', '']) [app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A subclass of HTTPServer which calls a WSGI application.', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 36, True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__module__', 'cheroot.wsgi', True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('request_queue_size', 'requests', 'shutdown_timeout', 'timeout', 'wsgi_app'), True, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'numthreads', , False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [app] emitting event: 'autodoc-skip-member'('class', 'wsgi_version', (1, 0), False, {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }) [autodoc] from cheroot.wsgi import Server.numthreads [autodoc] import cheroot.wsgi => [autodoc] getattr(_, 'Server') [autodoc] => [autodoc] getattr(_, 'numthreads') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('property', 'cheroot.wsgi.Server.numthreads', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('property', 'cheroot.wsgi.Server.numthreads', , {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['Set minimum number of threads.', '']) [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-process-signature'('attribute', 'cheroot.wsgi.Server.wsgi_version', (1, 0), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, '', None) [app] emitting event: 'autodoc-process-docstring'('attribute', 'cheroot.wsgi.Server.wsgi_version', (1, 0), {'members': , 'undoc-members': True, 'show-inheritance': True, 'private-members': }, ['The version of WSGI to produce.', '']) [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] => [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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/docs/pkg/modules.rst:2: section "cheroot" gets labeled as "cheroot" [app] emitting event: 'env-updated'(,) looking for now-outdated files... [app] emitting event: 'env-get-updated'(,) .github/CONTRIBUTING.rst:3: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/contributing/release_guide.rst:5: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/contributing/release_guide.rst:7: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/contributing/release_guide.rst:79: ERROR: Undefined substitution referenced: "project". [docutils] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/history.rst:3: ERROR: Unknown directive type "spelling". .. spelling:: reproducibility [docutils] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/cheroot/cli.py:docstring of cheroot.cli:25: ERROR: Unknown directive type "spelling". .. spelling:: cli [docutils] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/cheroot/workers/threadpool.py:docstring of cheroot.workers.threadpool:3: ERROR: Unknown directive type "spelling". .. spelling:: joinable [docutils] 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.1-build/cheroot-11.1.1/html/_static/language_data.js Writing evaluated template result to /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/html/_static/documentation_options.js Writing evaluated template result to /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/html/_static/basic.css Writing evaluated template result to /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34d8a0>, 'hasdoc': .hasdoc at 0x7fca7c34d760>, 'toctree': . at 0x7fca7c34d4e0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c34d440>, 'js_tag': .js_tag at 0x7fca7c34d3a0>}, >) [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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6ffc1620>, 'hasdoc': .hasdoc at 0x7fca6ffc1800>, 'toctree': . at 0x7fca6ffc18a0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6ffc1940>, 'js_tag': .js_tag at 0x7fca6ffc19e0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34d8a0>, 'hasdoc': .hasdoc at 0x7fca7c34d3a0>, 'toctree': . at 0x7fca7c34d440>, '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', 'content_root': './', 'css_tag': .css_tag at 0x7fca7c34d4e0>, 'js_tag': .js_tag at 0x7fca7c34d760>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c1f3d80>, 'hasdoc': .hasdoc at 0x7fca7c1f32e0>, 'toctree': . at 0x7fca7c1f1120>, '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.1

\n

(2025-11-03)

\n
\n

Packaging updates and notes for downstreams

\n
    \n
  • The packaging configuration has been fixed to ensure\nthat only cheroot package will be installed\ninto site-packages/ – by @webknjaz.

    \n

    This fixes a regression introduced in version 11.1.0.

    \n

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

    \n

    Related commits on GitHub:\nd286d1a10718e871366743f3f496c760113cee15.

    \n
  • \n
\n
\n
\n
\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', 'content_root': './', 'css_tag': .css_tag at 0x7fca7c1f0d60>, 'js_tag': .js_tag at 0x7fca7c1f2c00>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f993240>, 'hasdoc': .hasdoc at 0x7fca6f993380>, 'toctree': . at 0x7fca6f993420>, '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', 'content_root': './', 'css_tag': .css_tag at 0x7fca6f9934c0>, 'js_tag': .js_tag at 0x7fca6f993560>},
) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8bc400>, 'hasdoc': .hasdoc at 0x7fca6f8bc360>, 'toctree': . at 0x7fca6f8bc4a0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8bc540>, 'js_tag': .js_tag at 0x7fca6f8bc5e0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8bc9a0>, 'hasdoc': .hasdoc at 0x7fca6f8bcae0>, 'toctree': . at 0x7fca6f8bca40>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8bc860>, 'js_tag': .js_tag at 0x7fca6f8bc7c0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8bc540>, 'hasdoc': .hasdoc at 0x7fca6f8bce00>, 'toctree': . at 0x7fca6f8bcb80>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8bc9a0>, 'js_tag': .js_tag at 0x7fca6f8bc360>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f993740>, 'hasdoc': .hasdoc at 0x7fca6f9937e0>, 'toctree': . at 0x7fca6f993240>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f993ce0>, 'js_tag': .js_tag at 0x7fca6f993b00>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8b0680>, 'hasdoc': .hasdoc at 0x7fca6f8b0900>, 'toctree': . at 0x7fca6f8b09a0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8b0ae0>, 'js_tag': .js_tag at 0x7fca6f8b0b80>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8b1ee0>, 'hasdoc': .hasdoc at 0x7fca6f8b1e40>, 'toctree': . at 0x7fca6f8b1f80>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8b2020>, 'js_tag': .js_tag at 0x7fca6f8b1b20>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8b2020>, 'hasdoc': .hasdoc at 0x7fca6f8b1e40>, 'toctree': . at 0x7fca6f8b20c0>, '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=8192)
\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=8192)
\n

File object attached to a socket object.

\n
\n\n
\n
\nclass cheroot.makefile.StreamReader(sock, mode=\'r\', bufsize=8192)
\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=8192)
\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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8b2c00>, 'js_tag': .js_tag at 0x7fca6f8b2ca0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8bc9a0>, 'hasdoc': .hasdoc at 0x7fca6f8bc360>, 'toctree': . at 0x7fca6f8bcb80>, '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 = 8192
\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 = 8192
\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.1\'
\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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8bce00>, 'js_tag': .js_tag at 0x7fca6f8bc720>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f993d80>, 'hasdoc': .hasdoc at 0x7fca6f993ce0>, 'toctree': . at 0x7fca6f993240>, '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
\nabstract bind(sock)
\n

Wrap and return the given socket.

\n
\n\n
\n
\nabstract get_environ()
\n

Return WSGI environ entries to be merged into each request.

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

Return socket file object.

\n
\n\n
\n
\nabstract 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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f9937e0>, 'js_tag': .js_tag at 0x7fca6f8bd300>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f20c180>, 'hasdoc': .hasdoc at 0x7fca6f20c0e0>, 'toctree': . at 0x7fca6f20c220>, '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=8192)
\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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f20c2c0>, 'js_tag': .js_tag at 0x7fca6f20c360>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f20d580>, 'hasdoc': .hasdoc at 0x7fca6f20d6c0>, 'toctree': . at 0x7fca6f20d760>, '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=8192)
\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=8192)
\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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f20d800>, 'js_tag': .js_tag at 0x7fca6f20d8a0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f20e840>, 'hasdoc': .hasdoc at 0x7fca6f20ea20>, 'toctree': . at 0x7fca6f20eac0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f20eb60>, 'js_tag': .js_tag at 0x7fca6f20ec00>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f503100>, 'hasdoc': .hasdoc at 0x7fca6f5031a0>, 'toctree': . at 0x7fca6f503240>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f5032e0>, 'js_tag': .js_tag at 0x7fca6f503380>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c403ce0>, 'hasdoc': .hasdoc at 0x7fca7c402520>, 'toctree': . at 0x7fca7c403ec0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c4020c0>, 'js_tag': .js_tag at 0x7fca7c401da0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c1f0ae0>, 'hasdoc': .hasdoc at 0x7fca7c1f02c0>, 'toctree': . at 0x7fca7c1f1760>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c1f18a0>, 'js_tag': .js_tag at 0x7fca7c1f2c00>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34d4e0>, 'hasdoc': .hasdoc at 0x7fca7c34fa60>, 'toctree': . at 0x7fca7c34fc40>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c34cae0>, 'js_tag': .js_tag at 0x7fca7c34d120>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7de87ce0>, 'hasdoc': .hasdoc at 0x7fca7de86ac0>, 'toctree': . at 0x7fca6f8bd800>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8bd440>, 'js_tag': .js_tag at 0x7fca6f8bd8a0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f993920>, 'hasdoc': .hasdoc at 0x7fca6f990180>, 'toctree': . at 0x7fca6f990220>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f9902c0>, 'js_tag': .js_tag at 0x7fca6f990360>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7db63d80>, 'hasdoc': .hasdoc at 0x7fca6f8bc720>, 'toctree': . at 0x7fca6f8bd3a0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8bc680>, 'js_tag': .js_tag at 0x7fca7db8a340>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34fa60>, 'hasdoc': .hasdoc at 0x7fca7c34d760>, 'toctree': . at 0x7fca7c34d580>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c34f9c0>, 'js_tag': .js_tag at 0x7fca7c34d8a0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c1f04a0>, 'hasdoc': .hasdoc at 0x7fca7c1f3ce0>, 'toctree': . at 0x7fca7c1f0220>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c1f14e0>, 'js_tag': .js_tag at 0x7fca7c1f11c0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c401f80>, 'hasdoc': .hasdoc at 0x7fca6f8b3f60>, 'toctree': . at 0x7fca6f8b3e20>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8b3c40>, 'js_tag': .js_tag at 0x7fca6f8b3ce0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f5036a0>, 'hasdoc': .hasdoc at 0x7fca7cb9f420>, 'toctree': . at 0x7fca6f9900e0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f990b80>, 'js_tag': .js_tag at 0x7fca6f990c20>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8b3f60>, 'hasdoc': .hasdoc at 0x7fca7c401da0>, 'toctree': . at 0x7fca7c403380>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c4023e0>, 'js_tag': .js_tag at 0x7fca7c403b00>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c1f23e0>, 'hasdoc': .hasdoc at 0x7fca7d69af20>, 'toctree': . at 0x7fca7d6989a0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7d69b100>, 'js_tag': .js_tag at 0x7fca7d69b060>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34dc60>, 'hasdoc': .hasdoc at 0x7fca7c34c2c0>, 'toctree': . at 0x7fca6f8bd8a0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f8bd3a0>, 'js_tag': .js_tag at 0x7fca6f8bd940>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f992480>, 'hasdoc': .hasdoc at 0x7fca6f992520>, 'toctree': . at 0x7fca6f9925c0>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f9923e0>, 'js_tag': .js_tag at 0x7fca6f992700>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34fc40>, 'hasdoc': .hasdoc at 0x7fca7c34d080>, 'toctree': . at 0x7fca7c34d120>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c34d4e0>, 'js_tag': .js_tag at 0x7fca7c34d440>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34dd00>, 'hasdoc': .hasdoc at 0x7fca7c34d120>, 'toctree': . at 0x7fca7c34d080>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c34d760>, 'js_tag': .js_tag at 0x7fca7c34d580>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca6f8b39c0>, 'hasdoc': .hasdoc at 0x7fca6f8b3600>, 'toctree': . at 0x7fca6f991a80>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca6f991c60>, 'js_tag': .js_tag at 0x7fca6f992de0>}, >) 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c1f3d80>, 'hasdoc': .hasdoc at 0x7fca7c1f3ce0>, 'toctree': . at 0x7fca7c1f1300>, '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', 'content_root': '../', 'css_tag': .css_tag at 0x7fca7c1f0d60>, 'js_tag': .js_tag at 0x7fca7c1f0ae0>}, >) /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/docs/contributing/guidelines.rst:72: WARNING: 'any' reference target not found: python [ref.any] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:196: WARNING: py:mod reference target not found: python:ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:199: WARNING: py:exc reference target not found: ssl.SSLEOFError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:199: WARNING: py:exc reference target not found: ssl.SSLZeroReturnError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:219: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:298: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:366: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:366: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:413: WARNING: py:data reference target not found: signal.SIGINT [ref.data] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:457: WARNING: py:data reference target not found: signal.SIGINT [ref.data] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:457: WARNING: py:data reference target not found: signal.SIGTERM [ref.data] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:485: WARNING: py:meth reference target not found: selectors.BaseSelector.get_map [ref.meth] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:538: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:538: WARNING: py:mod reference target not found: selectors [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:689: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:692: WARNING: py:mod reference target not found: unittest [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:692: WARNING: py:mod reference target not found: ddt [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:700: WARNING: py:func reference target not found: os.lchmod [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:702: WARNING: py:mod reference target not found: ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:705: WARNING: py:class reference target not found: OpenSSL.SSL.Connection [ref.class] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:735: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:878: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:890: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:196: WARNING: py:mod reference target not found: python:ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:199: WARNING: py:exc reference target not found: ssl.SSLEOFError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:199: WARNING: py:exc reference target not found: ssl.SSLZeroReturnError [ref.exc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:219: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:298: WARNING: unknown document: 'towncrier:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:366: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:366: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:413: WARNING: py:data reference target not found: signal.SIGINT [ref.data] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:457: WARNING: py:data reference target not found: signal.SIGINT [ref.data] generating indices... /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:457: WARNING: py:data reference target not found: signal.SIGTERM [ref.data] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:485: WARNING: py:meth reference target not found: selectors.BaseSelector.get_map [ref.meth] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:538: WARNING: py:func reference target not found: select.select [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:538: WARNING: py:mod reference target not found: selectors [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:689: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:692: WARNING: py:mod reference target not found: unittest [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:692: WARNING: py:mod reference target not found: ddt [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:700: WARNING: py:func reference target not found: os.lchmod [ref.func] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:702: WARNING: py:mod reference target not found: ssl [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:705: WARNING: py:class reference target not found: OpenSSL.SSL.Connection [ref.class] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:735: WARNING: py:mod reference target not found: trustme [ref.mod] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:878: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/CHANGES.rst:890: WARNING: py:obj reference target not found: socket.AF_UNIX [ref.obj] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/cheroot/ssl/pyopenssl.py:docstring of cheroot.ssl.pyopenssl:1: WARNING: unknown document: 'pyopenssl:index' [ref.doc] /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/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.1-build/cheroot-11.1.1/cheroot/workers/threadpool.py:docstring of cheroot.workers.threadpool.WorkerThread:1: WARNING: py:class reference target not found: threading.Thread [ref.class] 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7c34d580>, 'hasdoc': .hasdoc at 0x7fca7c34d440>, 'toctree': . at 0x7fca7c34d760>, '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 0x7fca7c34d080>, 'js_tag': .js_tag at 0x7fca7c34d120>}, 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7e036fc0>, 'hasdoc': .hasdoc at 0x7fca7e0340e0>, 'toctree': . at 0x7fca6f991440>, '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 0x7fca6f9913a0>, 'js_tag': .js_tag at 0x7fca6f991580>}, 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.1.3', 'sphinx_version_tuple': (8, 1, 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 0x7fca7e0376a0>, 'hasdoc': .hasdoc at 0x7fca7e0363e0>, 'toctree': . at 0x7fca7c34d3a0>, 'sidebars': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html'], 'content_root': './', 'css_tag': .css_tag at 0x7fca7c34fa60>, 'js_tag': .js_tag at 0x7fca7c34dbc0>}, 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.o167eX + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + '[' /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-cheroot-11.1.1-build + mkdir /builddir/build/BUILD/python-cheroot-11.1.1-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-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.1 ++ ls /builddir/build/BUILD/python-cheroot-11.1.1-build/pyproject-wheeldir/cheroot-11.1.1-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=cheroot==11.1.1 + '[' -z cheroot==11.1.1 ']' + TMPDIR=/builddir/build/BUILD/python-cheroot-11.1.1-build/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILD/python-cheroot-11.1.1-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.1-build/pyproject-wheeldir cheroot==11.1.1 Using pip 25.2 from /usr/lib/python3.13/site-packages/pip (python 3.13) Looking in links: /builddir/build/BUILD/python-cheroot-11.1.1-build/pyproject-wheeldir Processing /builddir/build/BUILD/python-cheroot-11.1.1-build/pyproject-wheeldir/cheroot-11.1.1-py3-none-any.whl Installing collected packages: cheroot Creating /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/bin changing mode of /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/bin/cheroot to 755 Successfully installed cheroot-11.1.1 + '[' -d /builddir/build/BUILD/python-cheroot-11.1.1-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.1-build/BUILDROOT/usr/bin/cheroot /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/bin/cheroot: updating + rm -rfv /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages ']' + site_dirs+=("/usr/lib/python3.13/site-packages") + '[' /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib64/python3.13/site-packages '!=' /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages ']' + '[' -d /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib64/python3.13/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.13/site-packages/cheroot-11.1.1.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot-11.1.1.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.1-build/BUILDROOT --record /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot-11.1.1.dist-info/RECORD --output /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-record + rm -fv /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot-11.1.1.dist-info/RECORD removed '/builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot-11.1.1.dist-info/RECORD' + rm -fv /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot-11.1.1.dist-info/REQUESTED removed '/builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot-11.1.1.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.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.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-modules --buildroot /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT --sitelib /usr/lib/python3.13/site-packages --sitearch /usr/lib64/python3.13/site-packages --python-version 3.13 --pyproject-record /builddir/build/BUILD/python-cheroot-11.1.1-build/python-cheroot-11.1.1-2.fc42.x86_64-pyproject-record --prefix /usr cheroot + rm -rf /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/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/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j2 Bytecompiling .py files below /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13 using python3.13 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-determinism --brp -j2 /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/testing.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/wsgi.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/connections.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/makefile.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/cli.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/errors.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/_compat.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/__main__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/workers/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/workers/__pycache__/threadpool.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/__pycache__/server.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_errors.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/webtest.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_errors.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_dispatch.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_dispatch.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/webtest.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_wsgi.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_core.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_wsgi.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_core.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_ssl.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_ssl.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_conn.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_server.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_server.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_makefile.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_makefile.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_cli.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_conn.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test_cli.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test__compat.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/test__compat.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/helper.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/_pytest_plugin.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/test/__pycache__/conftest.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/ssl/__pycache__/pyopenssl.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/ssl/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/cheroot/ssl/__pycache__/builtin.cpython-313.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 Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.OUSgKv + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-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-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.1 + LANG=C.utf-8 + /usr/bin/python3 -m pytest --ignore=build -W ignore::DeprecationWarning -p no:unraisableexception ============================= test session starts ============================== platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 rootdir: /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1 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 ............................................... [ 90%] ............. [ 97%] cheroot/test/test_wsgi.py s.. [ 98%] cheroot/test/webtest.py .. [100%] ============================= slowest 10 durations ============================= 4.00s call cheroot/test/test_conn.py::test_HTTP11_Timeout_after_request 3.74s 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.03s call cheroot/test/test_conn.py::test_invalid_selected_connection 0.62s call cheroot/test/test_conn.py::test_598 0.61s call cheroot/test/test_server.py::test_server_interrupt[KeyboardInterrupt] 0.61s call cheroot/test/test_server.py::test_server_interrupt[OSError1] 0.61s call cheroot/test/test_conn.py::test_unhandled_exception_in_request_handler 0.61s call cheroot/test/test_server.py::test_server_interrupt[OSError0] =========================== 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 85.24s (0:01:25) ============= + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-cheroot-11.1.1-2.fc42.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.0mFUs3 + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd cheroot-11.1.1 + DOCDIR=/builddir/build/BUILD/python-cheroot-11.1.1-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.1-build/BUILDROOT/usr/share/doc/python3-cheroot + cp -pr /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/README.rst /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/share/doc/python3-cheroot + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.29f13I + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd cheroot-11.1.1 + LICENSEDIR=/builddir/build/BUILD/python-cheroot-11.1.1-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.1-build/BUILDROOT/usr/share/licenses/python3-cheroot + cp -pr /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/LICENSE.md /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/share/licenses/python3-cheroot + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-cheroot = 11.1.1-2.fc42 python3-cheroot = 11.1.1-2.fc42 python3.13-cheroot = 11.1.1-2.fc42 python3.13dist(cheroot) = 11.1.1 python3dist(cheroot) = 11.1.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.13 python3.13dist(jaraco-functools) python3.13dist(more-itertools) >= 2.6 Obsoletes: python-cheroot < 11.1.1-2.fc42 Processing files: python-cheroot-doc-11.1.1-2.fc42.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.lmxY5d + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd cheroot-11.1.1 + DOCDIR=/builddir/build/BUILD/python-cheroot-11.1.1-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.1-build/BUILDROOT/usr/share/doc/python-cheroot-doc + cp -pr /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/html /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/share/doc/python-cheroot-doc + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.W5o1l0 + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + cd cheroot-11.1.1 + LICENSEDIR=/builddir/build/BUILD/python-cheroot-11.1.1-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.1-build/BUILDROOT/usr/share/licenses/python-cheroot-doc + cp -pr /builddir/build/BUILD/python-cheroot-11.1.1-build/cheroot-11.1.1/LICENSE.md /builddir/build/BUILD/python-cheroot-11.1.1-build/BUILDROOT/usr/share/licenses/python-cheroot-doc + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-cheroot-doc = 11.1.1-2.fc42 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.1-build/BUILDROOT Wrote: /builddir/build/SRPMS/python-cheroot-11.1.1-2.fc42.src.rpm Wrote: /builddir/build/RPMS/python3-cheroot-11.1.1-2.fc42.noarch.rpm Wrote: /builddir/build/RPMS/python-cheroot-doc-11.1.1-2.fc42.noarch.rpm Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.C0IXWY + umask 022 + cd /builddir/build/BUILD/python-cheroot-11.1.1-build + test -d /builddir/build/BUILD/python-cheroot-11.1.1-build + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /builddir/build/BUILD/python-cheroot-11.1.1-build + rm -rf /builddir/build/BUILD/python-cheroot-11.1.1-build + RPM_EC=0 ++ jobs -p + exit 0 Finish: rpmbuild python-cheroot-11.1.1-2.fc42.src.rpm Finish: build phase for python-cheroot-11.1.1-2.fc42.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-42-x86_64-1762357903.141268/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.1-2.fc42.src.rpm) Config(child) 1 minutes 54 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.1", "release": "2.fc42", "arch": "noarch" }, { "name": "python-cheroot", "epoch": null, "version": "11.1.1", "release": "2.fc42", "arch": "src" }, { "name": "python-cheroot-doc", "epoch": null, "version": "11.1.1", "release": "2.fc42", "arch": "noarch" } ] } RPMResults finished