Warning: Permanently added '2620:52:3:1:dead:beef:cafe:c196' (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/7642959-fedora-rawhide-x86_64 --chroot fedora-rawhide-x86_64 Version: 0.73 PID: 16040 Logging PID: 16041 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'build_id': 7642959, 'buildroot_pkgs': [], 'chroot': 'fedora-rawhide-x86_64', 'enable_net': False, 'fedora_review': False, 'git_hash': 'cdceefc77f11dfa8036bd62651bcc6e7a36080b3', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/thrnciar/pytest-8.2.2/python-csvkit', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'python-csvkit', 'package_version': '1.1.1-6', 'project_dirname': 'pytest-8.2.2', 'project_name': 'pytest-8.2.2', 'project_owner': 'thrnciar', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/thrnciar/pytest-8.2.2/fedora-rawhide-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None}], 'sandbox': 'thrnciar/pytest-8.2.2--thrnciar', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'submitter': 'thrnciar', 'tags': [], 'task_id': '7642959-fedora-rawhide-x86_64', 'timeout': None, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/thrnciar/pytest-8.2.2/python-csvkit /var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/thrnciar/pytest-8.2.2/python-csvkit', '/var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit'... Running: git checkout cdceefc77f11dfa8036bd62651bcc6e7a36080b3 -- cmd: ['git', 'checkout', 'cdceefc77f11dfa8036bd62651bcc6e7a36080b3', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit rc: 0 stdout: stderr: Note: switching to 'cdceefc77f11dfa8036bd62651bcc6e7a36080b3'. 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 cdceefc automatic import of python-csvkit Running: copr-distgit-client sources cmd: ['copr-distgit-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit 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 csvkit-1.1.1.tar.gz /usr/bin/tail: /var/lib/copr-rpmbuild/main.log: file truncated INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -o csvkit-1.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/thrnciar/pytest-8.2.2/python-csvkit/csvkit-1.1.1.tar.gz/md5/a039951011669051aab3c9047994279e/csvkit-1.1.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3703k 100 3703k 0 0 17.2M 0 --:--:-- --:--:-- --:--:-- 17.2M INFO: Reading stdout from command: md5sum csvkit-1.1.1.tar.gz Running (timeout=None): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit/python-csvkit.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1718973529.470161 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 5.6 starting (python version = 3.12.1, NVR = mock-5.6-1.fc39), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit/python-csvkit.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1718973529.470161 -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-mwzxxiea/python-csvkit/python-csvkit.spec) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 5.6 INFO: Mock Version: 5.6 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1718973529.470161/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 bootstrap image: registry.fedoraproject.org/fedora:rawhide INFO: Pulling image: registry.fedoraproject.org/fedora:rawhide INFO: Copy content of container registry.fedoraproject.org/fedora:rawhide to /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1718973529.470161/root INFO: Checking that registry.fedoraproject.org/fedora:rawhide image matches host's architecture INFO: mounting registry.fedoraproject.org/fedora:rawhide with podman image mount INFO: image registry.fedoraproject.org/fedora:rawhide as /var/lib/containers/storage/overlay/e8fc6821c4b113add850ee44a2914144be252a92dd8c882623487c283bedbfb4/merged INFO: umounting image registry.fedoraproject.org/fedora:rawhide (/var/lib/containers/storage/overlay/e8fc6821c4b113add850ee44a2914144be252a92dd8c882623487c283bedbfb4/merged) with podman image umount INFO: Package manager dnf5 detected and used (fallback) INFO: Bootstrap image not marked ready Start(bootstrap): installing dnf5 tooling Updating and loading repositories: Copr repository 100% | 2.0 MiB/s | 373.3 KiB | 00m00s fedora 100% | 12.4 MiB/s | 21.2 MiB | 00m02s Repositories loaded. Package "dnf5-5.2.3.0-3.fc41.x86_64" is already installed. Package Arch Version Repository Size Installing: dnf5-plugins x86_64 5.2.3.0-3.fc41 fedora 1.0 MiB Installing dependencies: elfutils-default-yama-scope noarch 0.191-7.fc41 fedora 1.8 KiB elfutils-libelf x86_64 0.191-7.fc41 fedora 1.2 MiB elfutils-libs x86_64 0.191-7.fc41 fedora 646.1 KiB file-libs x86_64 5.45-6.fc41 fedora 9.9 MiB libgomp x86_64 14.1.1-5.fc41 fedora 523.6 KiB rpm-build-libs x86_64 4.19.91-13.fc41 fedora 206.6 KiB Transaction Summary: Installing: 7 packages Total size of inbound packages is 2 MiB. Need to download 2 MiB. After this operation 13 MiB will be used (install 13 MiB, remove 0 B). [1/7] rpm-build-libs-0:4.19.91-13.fc41. 100% | 194.4 KiB/s | 99.1 KiB | 00m01s [2/7] elfutils-libelf-0:0.191-7.fc41.x8 100% | 387.5 KiB/s | 208.5 KiB | 00m01s [3/7] dnf5-plugins-0:5.2.3.0-3.fc41.x86 100% | 659.1 KiB/s | 367.8 KiB | 00m01s [4/7] libgomp-0:14.1.1-5.fc41.x86_64 100% | 3.5 MiB/s | 350.3 KiB | 00m00s [5/7] elfutils-libs-0:0.191-7.fc41.x86_ 100% | 1.6 MiB/s | 258.1 KiB | 00m00s [6/7] file-libs-0:5.45-6.fc41.x86_64 100% | 4.7 MiB/s | 761.7 KiB | 00m00s [7/7] elfutils-default-yama-scope-0:0.1 100% | 290.2 KiB/s | 13.3 KiB | 00m00s -------------------------------------------------------------------------------- [7/7] Total 100% | 2.8 MiB/s | 2.0 MiB | 00m01s Running transaction [1/9] Verify package files 100% | 777.0 B/s | 7.0 B | 00m00s [2/9] Prepare transaction 100% | 636.0 B/s | 7.0 B | 00m00s [3/9] Installing elfutils-libelf-0:0.19 100% | 194.9 MiB/s | 1.2 MiB | 00m00s [4/9] Installing elfutils-default-yama- 100% | 227.0 KiB/s | 2.0 KiB | 00m00s >>> Running post-install scriptlet: elfutils-default-yama-scope-0:0.191-7.fc41.n >>> Stop post-install scriptlet: elfutils-default-yama-scope-0:0.191-7.fc41.noar [5/9] Installing elfutils-libs-0:0.191- 100% | 158.2 MiB/s | 648.0 KiB | 00m00s [6/9] Installing libgomp-0:14.1.1-5.fc4 100% | 170.9 MiB/s | 525.0 KiB | 00m00s [7/9] Installing file-libs-0:5.45-6.fc4 100% | 397.2 MiB/s | 9.9 MiB | 00m00s [8/9] Installing rpm-build-libs-0:4.19. 100% | 67.5 MiB/s | 207.5 KiB | 00m00s warning: posix.fork(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.exec(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead [9/9] Installing dnf5-plugins-0:5.2.3.0 100% | 31.9 MiB/s | 1.0 MiB | 00m00s >>> Running trigger-install scriptlet: glibc-common-0:2.39.9000-26.fc41.x86_64 >>> Stop trigger-install scriptlet: glibc-common-0:2.39.9000-26.fc41.x86_64 Finish(bootstrap): installing dnf5 tooling Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1718973529.470161/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.19.91-13.fc41.x86_64 rpm-sequoia-1.6.0-3.fc41.x86_64 dnf5-5.2.3.0-3.fc41.x86_64 dnf5-plugins-5.2.3.0-3.fc41.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: fedora 100% | 954.2 KiB/s | 23.9 KiB | 00m00s Copr repository 100% | 29.4 KiB/s | 1.5 KiB | 00m00s Copr repository 100% | 1.6 MiB/s | 373.3 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 5.2.26-3.fc40 fedora 8.1 MiB bzip2 x86_64 1.0.8-18.fc40 fedora 91.7 KiB coreutils x86_64 9.5-2.fc41 fedora 5.5 MiB cpio x86_64 2.15-1.fc40 fedora 1.1 MiB diffutils x86_64 3.10-5.fc40 fedora 1.6 MiB fedora-release-common noarch 41-0.13 fedora 19.2 KiB findutils x86_64 1:4.10.0-2.fc41 fedora 1.8 MiB gawk x86_64 5.3.0-3.fc40 fedora 1.7 MiB glibc-minimal-langpack x86_64 2.39.9000-26.fc41 fedora 0.0 B grep x86_64 3.11-8.fc41 fedora 1.0 MiB gzip x86_64 1.13-1.fc40 fedora 385.0 KiB info x86_64 7.1-2.fc40 fedora 357.8 KiB patch x86_64 2.7.6-24.fc40 fedora 262.8 KiB redhat-rpm-config noarch 293-1.fc41 fedora 183.5 KiB rpm-build x86_64 4.19.91-13.fc41 fedora 194.1 KiB sed x86_64 4.9-1.fc40 fedora 861.5 KiB shadow-utils x86_64 2:4.15.1-5.fc41 fedora 4.1 MiB tar x86_64 2:1.35-3.fc40 fedora 2.9 MiB unzip x86_64 6.0-63.fc40 fedora 382.8 KiB util-linux x86_64 2.40.1-2.fc41 fedora 3.7 MiB which x86_64 2.21-41.fc40 fedora 80.2 KiB xz x86_64 1:5.4.6-3.fc41 fedora 2.0 MiB Installing dependencies: add-determinism x86_64 0.3.0-2.fc41 fedora 2.1 MiB alternatives x86_64 1.27-1.fc41 fedora 66.3 KiB ansible-srpm-macros noarch 1-15.fc41 fedora 35.7 KiB audit-libs x86_64 4.0.1-3.fc41 fedora 327.3 KiB authselect x86_64 1.5.0-5.fc41 fedora 153.6 KiB authselect-libs x86_64 1.5.0-5.fc41 fedora 818.2 KiB basesystem noarch 11-20.fc40 fedora 0.0 B binutils x86_64 2.42.50-14.fc41 fedora 26.7 MiB build-reproducibility-srpm-macros noarch 0.3.0-2.fc41 fedora 686.0 B bzip2-libs x86_64 1.0.8-18.fc40 fedora 80.7 KiB ca-certificates noarch 2023.2.62_v7.0.401-6.fc40 fedora 2.3 MiB coreutils-common x86_64 9.5-2.fc41 fedora 11.2 MiB cracklib x86_64 2.9.11-5.fc40 fedora 238.9 KiB crypto-policies noarch 20240521-1.gitf71d135.fc41 copr_base 120.0 KiB curl x86_64 8.8.0-1.fc41 fedora 743.7 KiB cyrus-sasl-lib x86_64 2.1.28-22.fc41 fedora 2.3 MiB debugedit x86_64 5.0-16.fc41 fedora 199.3 KiB dwz x86_64 0.15-6.fc40 fedora 290.9 KiB ed x86_64 1.20.2-1.fc41 fedora 146.8 KiB efi-srpm-macros noarch 5-11.fc40 fedora 40.1 KiB elfutils x86_64 0.191-7.fc41 fedora 2.5 MiB elfutils-debuginfod-client x86_64 0.191-7.fc41 fedora 64.9 KiB elfutils-default-yama-scope noarch 0.191-7.fc41 fedora 1.8 KiB elfutils-libelf x86_64 0.191-7.fc41 fedora 1.2 MiB elfutils-libs x86_64 0.191-7.fc41 fedora 646.1 KiB fedora-gpg-keys noarch 41-0.2 fedora 124.7 KiB fedora-release noarch 41-0.13 fedora 0.0 B fedora-release-identity-basic noarch 41-0.13 fedora 694.0 B fedora-repos noarch 41-0.2 fedora 4.9 KiB fedora-repos-rawhide noarch 41-0.2 fedora 2.2 KiB file x86_64 5.45-6.fc41 fedora 103.5 KiB file-libs x86_64 5.45-6.fc41 fedora 9.9 MiB filesystem x86_64 3.18-9.fc41 fedora 106.0 B fonts-srpm-macros noarch 1:2.0.5-16.fc41 fedora 55.8 KiB forge-srpm-macros noarch 0.3.1-1.fc41 copr_base 39.0 KiB fpc-srpm-macros noarch 1.3-12.fc40 fedora 144.0 B gdb-minimal x86_64 14.2-12.fc41 fedora 12.7 MiB gdbm x86_64 1:1.23-6.fc40 fedora 460.9 KiB gdbm-libs x86_64 1:1.23-6.fc40 fedora 121.9 KiB ghc-srpm-macros noarch 1.9.1-1.fc41 fedora 747.0 B glibc x86_64 2.39.9000-26.fc41 fedora 6.7 MiB glibc-common x86_64 2.39.9000-26.fc41 fedora 1.0 MiB glibc-gconv-extra x86_64 2.39.9000-26.fc41 fedora 7.8 MiB gmp x86_64 1:6.3.0-1.fc41 fedora 803.4 KiB gnat-srpm-macros noarch 6-5.fc40 fedora 1.0 KiB go-srpm-macros noarch 3.6.0-1.fc41 fedora 60.8 KiB jansson x86_64 2.13.1-9.fc40 fedora 88.3 KiB kernel-srpm-macros noarch 1.0-23.fc41 fedora 1.9 KiB keyutils-libs x86_64 1.6.3-3.fc40 fedora 54.4 KiB krb5-libs x86_64 1.21.2-5.fc40 fedora 2.3 MiB libacl x86_64 2.3.2-1.fc40 fedora 40.0 KiB libarchive x86_64 3.7.4-1.fc41 fedora 914.6 KiB libattr x86_64 2.5.2-3.fc40 fedora 28.5 KiB libblkid x86_64 2.40.1-2.fc41 fedora 258.5 KiB libbrotli x86_64 1.1.0-4.fc41 fedora 829.6 KiB libcap x86_64 2.70-1.fc41 fedora 220.3 KiB libcap-ng x86_64 0.8.5-2.fc41 fedora 69.2 KiB libcom_err x86_64 1.47.0-5.fc40 fedora 67.2 KiB libcurl x86_64 8.8.0-1.fc41 fedora 805.7 KiB libeconf x86_64 0.6.2-2.fc41 fedora 58.0 KiB libevent x86_64 2.1.12-13.fc41 fedora 895.6 KiB libfdisk x86_64 2.40.1-2.fc41 fedora 362.9 KiB libffi x86_64 3.4.6-1.fc41 fedora 82.4 KiB libgcc x86_64 14.1.1-5.fc41 fedora 274.6 KiB libgomp x86_64 14.1.1-5.fc41 fedora 523.6 KiB libidn2 x86_64 2.3.7-1.fc40 fedora 329.1 KiB libmount x86_64 2.40.1-2.fc41 fedora 351.8 KiB libnghttp2 x86_64 1.62.0-1.fc41 fedora 166.1 KiB libnsl2 x86_64 2.0.1-1.fc40 fedora 57.9 KiB libpkgconf x86_64 2.1.1-1.fc41 fedora 74.2 KiB libpsl x86_64 0.21.5-3.fc40 fedora 80.5 KiB libpwquality x86_64 1.4.5-10.fc41 fedora 417.8 KiB libselinux x86_64 3.6-6.fc41 fedora 177.0 KiB libsemanage x86_64 3.6-4.fc41 fedora 293.5 KiB libsepol x86_64 3.6-3.fc40 fedora 802.0 KiB libsmartcols x86_64 2.40.1-2.fc41 fedora 180.4 KiB libssh x86_64 0.10.6-6.fc41 fedora 513.3 KiB libssh-config noarch 0.10.6-6.fc41 fedora 277.0 B libstdc++ x86_64 14.1.1-5.fc41 fedora 2.8 MiB libtasn1 x86_64 4.19.0-6.fc40 fedora 175.7 KiB libtirpc x86_64 1.3.4-1.rc3.fc41 fedora 202.8 KiB libtool-ltdl x86_64 2.4.7-11.fc41 fedora 66.1 KiB libunistring x86_64 1.1-7.fc41 fedora 1.7 MiB libutempter x86_64 1.2.1-13.fc40 fedora 57.7 KiB libuuid x86_64 2.40.1-2.fc41 fedora 37.4 KiB libverto x86_64 0.3.2-8.fc40 fedora 29.5 KiB libxcrypt x86_64 4.4.36-5.fc40 fedora 262.8 KiB libxml2 x86_64 2.12.8-1.fc41 fedora 1.7 MiB libzstd x86_64 1.5.6-1.fc41 fedora 787.9 KiB lua-libs x86_64 5.4.6-5.fc40 fedora 281.1 KiB lua-srpm-macros noarch 1-13.fc40 fedora 1.3 KiB lz4-libs x86_64 1.9.4-6.fc40 fedora 129.4 KiB mpfr x86_64 4.2.1-4.fc41 fedora 828.0 KiB ncurses-base noarch 6.4-12.20240127.fc40 fedora 326.2 KiB ncurses-libs x86_64 6.4-12.20240127.fc40 fedora 963.2 KiB ocaml-srpm-macros noarch 10-2.fc41 fedora 1.9 KiB openblas-srpm-macros noarch 2-17.fc41 fedora 112.0 B openldap x86_64 2.6.8-2.fc41 fedora 640.3 KiB openssl-libs x86_64 1:3.2.2-1.fc41 fedora 7.8 MiB p11-kit x86_64 0.25.3-4.fc40 fedora 2.2 MiB p11-kit-trust x86_64 0.25.3-4.fc40 fedora 391.4 KiB package-notes-srpm-macros noarch 0.5-11.fc40 fedora 1.6 KiB pam x86_64 1.6.1-3.fc41 fedora 1.8 MiB pam-libs x86_64 1.6.1-3.fc41 fedora 135.0 KiB pcre2 x86_64 10.43-2.fc41.1 fedora 653.5 KiB pcre2-syntax noarch 10.43-2.fc41.1 fedora 249.0 KiB perl-srpm-macros noarch 1-55.fc41 fedora 861.0 B pkgconf x86_64 2.1.1-1.fc41 fedora 82.9 KiB pkgconf-m4 noarch 2.1.1-1.fc41 fedora 13.9 KiB pkgconf-pkg-config x86_64 2.1.1-1.fc41 fedora 989.0 B popt x86_64 1.19-6.fc40 fedora 136.9 KiB publicsuffix-list-dafsa noarch 20240107-3.fc40 fedora 67.5 KiB pyproject-srpm-macros noarch 1.12.1-1.fc41 copr_base 1.5 KiB python-srpm-macros noarch 3.13-1.fc41 fedora 50.5 KiB qt5-srpm-macros noarch 5.15.14-1.fc41 fedora 500.0 B qt6-srpm-macros noarch 6.7.1-1.fc41 fedora 456.0 B readline x86_64 8.2-8.fc40 fedora 489.2 KiB rpm x86_64 4.19.91-13.fc41 fedora 3.0 MiB rpm-build-libs x86_64 4.19.91-13.fc41 fedora 206.6 KiB rpm-libs x86_64 4.19.91-13.fc41 fedora 717.9 KiB rpm-sequoia x86_64 1.6.0-3.fc41 fedora 2.2 MiB rust-srpm-macros noarch 26.3-1.fc41 fedora 4.8 KiB setup noarch 2.15.0-4.fc41 fedora 720.7 KiB sqlite-libs x86_64 3.46.0-2.fc41 fedora 1.4 MiB systemd-libs x86_64 256.1-3.fc41 fedora 2.0 MiB util-linux-core x86_64 2.40.1-2.fc41 fedora 1.5 MiB xxhash-libs x86_64 0.8.2-2.fc40 fedora 88.5 KiB xz-libs x86_64 1:5.4.6-3.fc41 fedora 209.8 KiB zig-srpm-macros noarch 1-2.fc40 fedora 1.1 KiB zip x86_64 3.0-40.fc40 fedora 703.2 KiB zlib-ng-compat x86_64 2.1.6-6.fc41 fedora 134.0 KiB zstd x86_64 1.5.6-1.fc41 fedora 1.7 MiB Installing groups: Buildsystem building group Transaction Summary: Installing: 154 packages Total size of inbound packages is 53 MiB. Need to download 0 B. After this operation 179 MiB will be used (install 179 MiB, remove 0 B). [ 1/154] tar-2:1.35-3.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/154] bzip2-0:1.0.8-18.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/154] redhat-rpm-config-0:293-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/154] rpm-build-0:4.19.91-13.fc41.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/154] unzip-0:6.0-63.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/154] cpio-0:2.15-1.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/154] which-0:2.21-41.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/154] bash-0:5.2.26-3.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/154] coreutils-0:9.5-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 10/154] grep-0:3.11-8.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 11/154] patch-0:2.7.6-24.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 12/154] sed-0:4.9-1.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 13/154] shadow-utils-2:4.15.1-5.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 14/154] diffutils-0:3.10-5.fc40.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 15/154] fedora-release-common-0:41-0. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 16/154] findutils-1:4.10.0-2.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 17/154] glibc-minimal-langpack-0:2.39 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 18/154] gzip-0:1.13-1.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 19/154] info-0:7.1-2.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 20/154] xz-1:5.4.6-3.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 21/154] util-linux-0:2.40.1-2.fc41.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 22/154] gawk-0:5.3.0-3.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 23/154] glibc-0:2.39.9000-26.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 24/154] libacl-0:2.3.2-1.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 25/154] libselinux-0:3.6-6.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 26/154] bzip2-libs-0:1.0.8-18.fc40.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 27/154] ansible-srpm-macros-0:1-15.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 28/154] build-reproducibility-srpm-ma 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 29/154] dwz-0:0.15-6.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 30/154] efi-srpm-macros-0:5-11.fc40.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 31/154] file-0:5.45-6.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 32/154] fonts-srpm-macros-1:2.0.5-16. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 33/154] fpc-srpm-macros-0:1.3-12.fc40 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 34/154] ghc-srpm-macros-0:1.9.1-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 35/154] gnat-srpm-macros-0:6-5.fc40.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 36/154] go-srpm-macros-0:3.6.0-1.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 37/154] kernel-srpm-macros-0:1.0-23.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 38/154] lua-srpm-macros-0:1-13.fc40.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 39/154] ocaml-srpm-macros-0:10-2.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 40/154] openblas-srpm-macros-0:2-17.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 41/154] package-notes-srpm-macros-0:0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 42/154] perl-srpm-macros-0:1-55.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 43/154] python-srpm-macros-0:3.13-1.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 44/154] qt5-srpm-macros-0:5.15.14-1.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 45/154] qt6-srpm-macros-0:6.7.1-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 46/154] rpm-0:4.19.91-13.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 47/154] rust-srpm-macros-0:26.3-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 48/154] zig-srpm-macros-0:1-2.fc40.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 49/154] zip-0:3.0-40.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 50/154] debugedit-0:5.0-16.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 51/154] elfutils-0:0.191-7.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 52/154] elfutils-libelf-0:0.191-7.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 53/154] libarchive-0:3.7.4-1.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 54/154] popt-0:1.19-6.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 55/154] readline-0:8.2-8.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 56/154] rpm-build-libs-0:4.19.91-13.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 57/154] rpm-libs-0:4.19.91-13.fc41.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 58/154] zstd-0:1.5.6-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 59/154] filesystem-0:3.18-9.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 60/154] ncurses-libs-0:6.4-12.2024012 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 61/154] coreutils-common-0:9.5-2.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 62/154] libattr-0:2.5.2-3.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 63/154] libcap-0:2.70-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 64/154] openssl-libs-1:3.2.2-1.fc41.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 65/154] pcre2-0:10.43-2.fc41.1.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 66/154] ed-0:1.20.2-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 67/154] audit-libs-0:4.0.1-3.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 68/154] libeconf-0:0.6.2-2.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 69/154] libsemanage-0:3.6-4.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 70/154] libxcrypt-0:4.4.36-5.fc40.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 71/154] pam-libs-0:1.6.1-3.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 72/154] setup-0:2.15.0-4.fc41.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 73/154] fedora-repos-0:41-0.2.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 74/154] glibc-common-0:2.39.9000-26.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 75/154] xz-libs-1:5.4.6-3.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 76/154] libblkid-0:2.40.1-2.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 77/154] libcap-ng-0:0.8.5-2.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 78/154] libfdisk-0:2.40.1-2.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 79/154] libmount-0:2.40.1-2.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 80/154] libsmartcols-0:2.40.1-2.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 81/154] libutempter-0:1.2.1-13.fc40.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 82/154] libuuid-0:2.40.1-2.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 83/154] systemd-libs-0:256.1-3.fc41.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 84/154] util-linux-core-0:2.40.1-2.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 85/154] zlib-ng-compat-0:2.1.6-6.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 86/154] mpfr-0:4.2.1-4.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 87/154] glibc-gconv-extra-0:2.39.9000 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 88/154] basesystem-0:11-20.fc40.noarc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 89/154] libgcc-0:14.1.1-5.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 90/154] libsepol-0:3.6-3.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 91/154] add-determinism-0:0.3.0-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 92/154] file-libs-0:5.45-6.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 93/154] curl-0:8.8.0-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 94/154] elfutils-libs-0:0.191-7.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 95/154] elfutils-debuginfod-client-0: 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 96/154] libstdc++-0:14.1.1-5.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 97/154] libzstd-0:1.5.6-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 98/154] libxml2-0:2.12.8-1.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 99/154] lz4-libs-0:1.9.4-6.fc40.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [100/154] libgomp-0:14.1.1-5.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [101/154] lua-libs-0:5.4.6-5.fc40.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [102/154] rpm-sequoia-0:1.6.0-3.fc41.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [103/154] sqlite-libs-0:3.46.0-2.fc41.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [104/154] ncurses-base-0:6.4-12.2024012 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [105/154] ca-certificates-0:2023.2.62_v 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [106/154] pcre2-syntax-0:10.43-2.fc41.1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [107/154] fedora-gpg-keys-0:41-0.2.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [108/154] fedora-repos-rawhide-0:41-0.2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [109/154] elfutils-default-yama-scope-0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [110/154] authselect-libs-0:1.5.0-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [111/154] pam-0:1.6.1-3.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [112/154] authselect-0:1.5.0-5.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [113/154] gdbm-libs-1:1.23-6.fc40.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [114/154] libnsl2-0:2.0.1-1.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [115/154] libpwquality-0:1.4.5-10.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [116/154] libtirpc-0:1.3.4-1.rc3.fc41.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [117/154] cracklib-0:2.9.11-5.fc40.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [118/154] krb5-libs-0:1.21.2-5.fc40.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [119/154] libcom_err-0:1.47.0-5.fc40.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [120/154] keyutils-libs-0:1.6.3-3.fc40. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [121/154] libverto-0:0.3.2-8.fc40.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [122/154] binutils-0:2.42.50-14.fc41.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [123/154] alternatives-0:1.27-1.fc41.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [124/154] jansson-0:2.13.1-9.fc40.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [125/154] pkgconf-pkg-config-0:2.1.1-1. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [126/154] pkgconf-0:2.1.1-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [127/154] pkgconf-m4-0:2.1.1-1.fc41.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [128/154] libpkgconf-0:2.1.1-1.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [129/154] forge-srpm-macros-0:0.3.1-1.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [130/154] pyproject-srpm-macros-0:1.12. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [131/154] gdbm-1:1.23-6.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [132/154] crypto-policies-0:20240521-1. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [133/154] p11-kit-0:0.25.3-4.fc40.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [134/154] libffi-0:3.4.6-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [135/154] libtasn1-0:4.19.0-6.fc40.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [136/154] p11-kit-trust-0:0.25.3-4.fc40 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [137/154] fedora-release-0:41-0.13.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [138/154] gdb-minimal-0:14.2-12.fc41.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [139/154] xxhash-libs-0:0.8.2-2.fc40.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [140/154] gmp-1:6.3.0-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [141/154] fedora-release-identity-basic 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [142/154] libcurl-0:8.8.0-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [143/154] libbrotli-0:1.1.0-4.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [144/154] libidn2-0:2.3.7-1.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [145/154] libnghttp2-0:1.62.0-1.fc41.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [146/154] libpsl-0:0.21.5-3.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [147/154] libssh-0:0.10.6-6.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [148/154] openldap-0:2.6.8-2.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [149/154] libunistring-0:1.1-7.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [150/154] publicsuffix-list-dafsa-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [151/154] libssh-config-0:0.10.6-6.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [152/154] cyrus-sasl-lib-0:2.1.28-22.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [153/154] libevent-0:2.1.12-13.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [154/154] libtool-ltdl-0:2.4.7-11.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [154/154] Total 100% | 0.0 B/s | 0.0 B | 00m00s Running transaction Importing PGP key 0xE99D6AD1: Userid : "Fedora (41) " Fingerprint: 466CF2D8B60BC3057AA9453ED0622462E99D6AD1 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-41-primary The key was successfully imported. Importing PGP key 0xE99D6AD1: Userid : "Fedora (41) " Fingerprint: 466CF2D8B60BC3057AA9453ED0622462E99D6AD1 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-41-primary The key was successfully imported. Importing PGP key 0xA15B79CC: Userid : "Fedora (40) " Fingerprint: 115DF9AEF857853EE8445D0A0727707EA15B79CC From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-40-primary The key was successfully imported. [ 1/156] Verify package files 100% | 655.0 B/s | 154.0 B | 00m00s >>> Running pre-transaction scriptlet: filesystem-0:3.18-9.fc41.x86_64 >>> Stop pre-transaction scriptlet: filesystem-0:3.18-9.fc41.x86_64 [ 2/156] Prepare transaction 100% | 1.8 KiB/s | 154.0 B | 00m00s [ 3/156] Installing libgcc-0:14.1.1-5. 100% | 134.8 MiB/s | 276.2 KiB | 00m00s >>> Running post-install scriptlet: libgcc-0:14.1.1-5.fc41.x86_64 >>> Stop post-install scriptlet: libgcc-0:14.1.1-5.fc41.x86_64 [ 4/156] Installing crypto-policies-0: 100% | 14.4 MiB/s | 147.0 KiB | 00m00s >>> Running post-install scriptlet: crypto-policies-0:20240521-1.gitf71d135.fc41 >>> Stop post-install scriptlet: crypto-policies-0:20240521-1.gitf71d135.fc41.no [ 5/156] Installing libssh-config-0:0. 100% | 796.9 KiB/s | 816.0 B | 00m00s [ 6/156] Installing publicsuffix-list- 100% | 66.7 MiB/s | 68.3 KiB | 00m00s [ 7/156] Installing fedora-release-ide 100% | 929.7 KiB/s | 952.0 B | 00m00s [ 8/156] Installing fedora-gpg-keys-0: 100% | 20.7 MiB/s | 169.7 KiB | 00m00s [ 9/156] Installing fedora-repos-rawhi 100% | 0.0 B/s | 2.4 KiB | 00m00s [ 10/156] Installing fedora-repos-0:41- 100% | 5.6 MiB/s | 5.7 KiB | 00m00s [ 11/156] Installing fedora-release-com 100% | 11.5 MiB/s | 23.5 KiB | 00m00s [ 12/156] Installing fedora-release-0:4 100% | 0.0 B/s | 124.0 B | 00m00s [ 13/156] Installing setup-0:2.15.0-4.f 100% | 47.3 MiB/s | 726.1 KiB | 00m00s >>> Running post-install scriptlet: setup-0:2.15.0-4.fc41.noarch >>> Stop post-install scriptlet: setup-0:2.15.0-4.fc41.noarch [ 14/156] Installing filesystem-0:3.18- 100% | 1.7 MiB/s | 212.5 KiB | 00m00s [ 15/156] Installing basesystem-0:11-20 100% | 0.0 B/s | 124.0 B | 00m00s [ 16/156] Installing pkgconf-m4-0:2.1.1 100% | 14.0 MiB/s | 14.3 KiB | 00m00s [ 17/156] Installing pcre2-syntax-0:10. 100% | 122.8 MiB/s | 251.5 KiB | 00m00s [ 18/156] Installing ncurses-base-0:6.4 100% | 38.2 MiB/s | 351.6 KiB | 00m00s [ 19/156] Installing glibc-minimal-lang 100% | 0.0 B/s | 124.0 B | 00m00s [ 20/156] Installing ncurses-libs-0:6.4 100% | 135.3 MiB/s | 969.7 KiB | 00m00s >>> Running pre-install scriptlet: glibc-0:2.39.9000-26.fc41.x86_64 >>> Stop pre-install scriptlet: glibc-0:2.39.9000-26.fc41.x86_64 warning: posix.fork(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.exec(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.fork(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.exec(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead [ 21/156] Installing glibc-0:2.39.9000- 100% | 139.2 MiB/s | 6.7 MiB | 00m00s >>> Running post-install scriptlet: glibc-0:2.39.9000-26.fc41.x86_64 >>> Stop post-install scriptlet: glibc-0:2.39.9000-26.fc41.x86_64 [ 22/156] Installing bash-0:5.2.26-3.fc 100% | 255.0 MiB/s | 8.2 MiB | 00m00s >>> Running post-install scriptlet: bash-0:5.2.26-3.fc40.x86_64 >>> Stop post-install scriptlet: bash-0:5.2.26-3.fc40.x86_64 [ 23/156] Installing glibc-common-0:2.3 100% | 115.0 MiB/s | 1.0 MiB | 00m00s warning: posix.fork(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.exec(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead [ 24/156] Installing glibc-gconv-extra- 100% | 131.1 MiB/s | 7.9 MiB | 00m00s >>> Running post-install scriptlet: glibc-gconv-extra-0:2.39.9000-26.fc41.x86_64 >>> Stop post-install scriptlet: glibc-gconv-extra-0:2.39.9000-26.fc41.x86_64 [ 25/156] Installing zlib-ng-compat-0:2 100% | 131.6 MiB/s | 134.8 KiB | 00m00s [ 26/156] Installing bzip2-libs-0:1.0.8 100% | 79.9 MiB/s | 81.8 KiB | 00m00s [ 27/156] Installing xz-libs-1:5.4.6-3. 100% | 103.0 MiB/s | 210.9 KiB | 00m00s [ 28/156] Installing popt-0:1.19-6.fc40 100% | 35.0 MiB/s | 143.5 KiB | 00m00s [ 29/156] Installing readline-0:8.2-8.f 100% | 160.0 MiB/s | 491.4 KiB | 00m00s [ 30/156] Installing libuuid-0:2.40.1-2 100% | 37.5 MiB/s | 38.4 KiB | 00m00s [ 31/156] Installing libblkid-0:2.40.1- 100% | 126.7 MiB/s | 259.5 KiB | 00m00s [ 32/156] Installing libattr-0:2.5.2-3. 100% | 28.8 MiB/s | 29.5 KiB | 00m00s [ 33/156] Installing libacl-0:2.3.2-1.f 100% | 39.9 MiB/s | 40.8 KiB | 00m00s [ 34/156] Installing libxcrypt-0:4.4.36 100% | 86.4 MiB/s | 265.5 KiB | 00m00s [ 35/156] Installing libstdc++-0:14.1.1 100% | 251.5 MiB/s | 2.8 MiB | 00m00s [ 36/156] Installing libzstd-0:1.5.6-1. 100% | 256.9 MiB/s | 789.2 KiB | 00m00s [ 37/156] Installing elfutils-libelf-0: 100% | 233.9 MiB/s | 1.2 MiB | 00m00s [ 38/156] Installing gmp-1:6.3.0-1.fc41 100% | 196.7 MiB/s | 805.6 KiB | 00m00s [ 39/156] Installing libeconf-0:0.6.2-2 100% | 58.3 MiB/s | 59.7 KiB | 00m00s [ 40/156] Installing gdbm-libs-1:1.23-6 100% | 60.3 MiB/s | 123.6 KiB | 00m00s [ 41/156] Installing mpfr-0:4.2.1-4.fc4 100% | 202.6 MiB/s | 829.7 KiB | 00m00s [ 42/156] Installing gawk-0:5.3.0-3.fc4 100% | 172.8 MiB/s | 1.7 MiB | 00m00s [ 43/156] Installing dwz-0:0.15-6.fc40. 100% | 142.7 MiB/s | 292.3 KiB | 00m00s [ 44/156] Installing unzip-0:6.0-63.fc4 100% | 125.8 MiB/s | 386.3 KiB | 00m00s [ 45/156] Installing file-libs-0:5.45-6 100% | 451.4 MiB/s | 9.9 MiB | 00m00s [ 46/156] Installing file-0:5.45-6.fc41 100% | 102.5 MiB/s | 105.0 KiB | 00m00s [ 47/156] Installing pcre2-0:10.43-2.fc 100% | 213.2 MiB/s | 654.9 KiB | 00m00s [ 48/156] Installing grep-0:3.11-8.fc41 100% | 124.9 MiB/s | 1.0 MiB | 00m00s [ 49/156] Installing xz-1:5.4.6-3.fc41. 100% | 117.8 MiB/s | 2.0 MiB | 00m00s [ 50/156] Installing libcap-ng-0:0.8.5- 100% | 69.4 MiB/s | 71.0 KiB | 00m00s [ 51/156] Installing audit-libs-0:4.0.1 100% | 160.9 MiB/s | 329.4 KiB | 00m00s [ 52/156] Installing pam-libs-0:1.6.1-3 100% | 67.1 MiB/s | 137.4 KiB | 00m00s [ 53/156] Installing libcap-0:2.70-1.fc 100% | 73.3 MiB/s | 225.2 KiB | 00m00s [ 54/156] Installing systemd-libs-0:256 100% | 253.7 MiB/s | 2.0 MiB | 00m00s [ 55/156] Installing libsmartcols-0:2.4 100% | 177.3 MiB/s | 181.5 KiB | 00m00s [ 56/156] Installing libsepol-0:3.6-3.f 100% | 261.4 MiB/s | 803.0 KiB | 00m00s [ 57/156] Installing libselinux-0:3.6-6 100% | 87.0 MiB/s | 178.3 KiB | 00m00s [ 58/156] Installing sed-0:4.9-1.fc40.x 100% | 121.3 MiB/s | 869.7 KiB | 00m00s [ 59/156] Installing findutils-1:4.10.0 100% | 185.8 MiB/s | 1.9 MiB | 00m00s [ 60/156] Installing libmount-0:2.40.1- 100% | 172.3 MiB/s | 352.9 KiB | 00m00s [ 61/156] Installing lz4-libs-0:1.9.4-6 100% | 127.4 MiB/s | 130.5 KiB | 00m00s [ 62/156] Installing lua-libs-0:5.4.6-5 100% | 137.8 MiB/s | 282.3 KiB | 00m00s [ 63/156] Installing libcom_err-0:1.47. 100% | 66.7 MiB/s | 68.3 KiB | 00m00s [ 64/156] Installing alternatives-0:1.2 100% | 66.4 MiB/s | 68.0 KiB | 00m00s [ 65/156] Installing libtasn1-0:4.19.0- 100% | 86.7 MiB/s | 177.5 KiB | 00m00s [ 66/156] Installing libunistring-0:1.1 100% | 288.5 MiB/s | 1.7 MiB | 00m00s [ 67/156] Installing libidn2-0:2.3.7-1. 100% | 81.8 MiB/s | 335.0 KiB | 00m00s [ 68/156] Installing libpsl-0:0.21.5-3. 100% | 79.7 MiB/s | 81.6 KiB | 00m00s [ 69/156] Installing zstd-0:1.5.6-1.fc4 100% | 279.3 MiB/s | 1.7 MiB | 00m00s [ 70/156] Installing util-linux-core-0: 100% | 135.1 MiB/s | 1.5 MiB | 00m00s [ 71/156] Installing tar-2:1.35-3.fc40. 100% | 227.0 MiB/s | 3.0 MiB | 00m00s [ 72/156] Installing libsemanage-0:3.6- 100% | 96.1 MiB/s | 295.3 KiB | 00m00s [ 73/156] Installing shadow-utils-2:4.1 100% | 86.9 MiB/s | 4.2 MiB | 00m00s >>> Running pre-install scriptlet: libutempter-0:1.2.1-13.fc40.x86_64 >>> Stop pre-install scriptlet: libutempter-0:1.2.1-13.fc40.x86_64 [ 74/156] Installing libutempter-0:1.2. 100% | 29.2 MiB/s | 59.7 KiB | 00m00s [ 75/156] Installing zip-0:3.0-40.fc40. 100% | 138.1 MiB/s | 707.1 KiB | 00m00s [ 76/156] Installing gdbm-1:1.23-6.fc40 100% | 113.7 MiB/s | 465.8 KiB | 00m00s [ 77/156] Installing cyrus-sasl-lib-0:2 100% | 229.1 MiB/s | 2.3 MiB | 00m00s [ 78/156] Installing libfdisk-0:2.40.1- 100% | 177.7 MiB/s | 363.9 KiB | 00m00s [ 79/156] Installing libxml2-0:2.12.8-1 100% | 244.6 MiB/s | 1.7 MiB | 00m00s [ 80/156] Installing bzip2-0:1.0.8-18.f 100% | 47.0 MiB/s | 96.2 KiB | 00m00s [ 81/156] Installing add-determinism-0: 100% | 266.1 MiB/s | 2.1 MiB | 00m00s [ 82/156] Installing build-reproducibil 100% | 0.0 B/s | 976.0 B | 00m00s [ 83/156] Installing sqlite-libs-0:3.46 100% | 238.2 MiB/s | 1.4 MiB | 00m00s [ 84/156] Installing ed-0:1.20.2-1.fc41 100% | 72.8 MiB/s | 149.2 KiB | 00m00s [ 85/156] Installing patch-0:2.7.6-24.f 100% | 129.0 MiB/s | 264.3 KiB | 00m00s [ 86/156] Installing elfutils-default-y 100% | 227.0 KiB/s | 2.0 KiB | 00m00s >>> Running post-install scriptlet: elfutils-default-yama-scope-0:0.191-7.fc41.n >>> Stop post-install scriptlet: elfutils-default-yama-scope-0:0.191-7.fc41.noar [ 87/156] Installing elfutils-libs-0:0. 100% | 158.2 MiB/s | 648.0 KiB | 00m00s [ 88/156] Installing cpio-0:2.15-1.fc40 100% | 157.1 MiB/s | 1.1 MiB | 00m00s [ 89/156] Installing diffutils-0:3.10-5 100% | 176.2 MiB/s | 1.6 MiB | 00m00s [ 90/156] Installing libgomp-0:14.1.1-5 100% | 256.3 MiB/s | 525.0 KiB | 00m00s [ 91/156] Installing keyutils-libs-0:1. 100% | 54.5 MiB/s | 55.8 KiB | 00m00s [ 92/156] Installing libverto-0:0.3.2-8 100% | 30.5 MiB/s | 31.3 KiB | 00m00s [ 93/156] Installing jansson-0:2.13.1-9 100% | 87.6 MiB/s | 89.7 KiB | 00m00s [ 94/156] Installing libpkgconf-0:2.1.1 100% | 73.6 MiB/s | 75.3 KiB | 00m00s [ 95/156] Installing pkgconf-0:2.1.1-1. 100% | 41.7 MiB/s | 85.4 KiB | 00m00s [ 96/156] Installing pkgconf-pkg-config 100% | 1.7 MiB/s | 1.8 KiB | 00m00s [ 97/156] Installing libffi-0:3.4.6-1.f 100% | 81.8 MiB/s | 83.8 KiB | 00m00s [ 98/156] Installing p11-kit-0:0.25.3-4 100% | 156.7 MiB/s | 2.2 MiB | 00m00s [ 99/156] Installing p11-kit-trust-0:0. 100% | 29.5 MiB/s | 393.1 KiB | 00m00s >>> Running post-install scriptlet: p11-kit-trust-0:0.25.3-4.fc40.x86_64 >>> Stop post-install scriptlet: p11-kit-trust-0:0.25.3-4.fc40.x86_64 [100/156] Installing xxhash-libs-0:0.8. 100% | 87.8 MiB/s | 89.9 KiB | 00m00s [101/156] Installing libbrotli-0:1.1.0- 100% | 203.1 MiB/s | 831.8 KiB | 00m00s [102/156] Installing libnghttp2-0:1.62. 100% | 163.3 MiB/s | 167.2 KiB | 00m00s [103/156] Installing libtool-ltdl-0:2.4 100% | 65.7 MiB/s | 67.3 KiB | 00m00s [104/156] Installing coreutils-common-0 100% | 254.3 MiB/s | 11.2 MiB | 00m00s [105/156] Installing openssl-libs-1:3.2 100% | 312.1 MiB/s | 7.8 MiB | 00m00s [106/156] Installing coreutils-0:9.5-2. 100% | 159.7 MiB/s | 5.6 MiB | 00m00s >>> Running pre-install scriptlet: ca-certificates-0:2023.2.62_v7.0.401-6.fc40.n >>> Stop pre-install scriptlet: ca-certificates-0:2023.2.62_v7.0.401-6.fc40.noar [107/156] Installing ca-certificates-0: 100% | 2.1 MiB/s | 2.3 MiB | 00m01s >>> Running post-install scriptlet: ca-certificates-0:2023.2.62_v7.0.401-6.fc40. >>> Stop post-install scriptlet: ca-certificates-0:2023.2.62_v7.0.401-6.fc40.noa [108/156] Installing krb5-libs-0:1.21.2 100% | 163.9 MiB/s | 2.3 MiB | 00m00s [109/156] Installing libarchive-0:3.7.4 100% | 223.8 MiB/s | 916.6 KiB | 00m00s [110/156] Installing libtirpc-0:1.3.4-1 100% | 99.9 MiB/s | 204.6 KiB | 00m00s [111/156] Installing gzip-0:1.13-1.fc40 100% | 76.3 MiB/s | 390.6 KiB | 00m00s [112/156] Installing authselect-libs-0: 100% | 67.8 MiB/s | 833.2 KiB | 00m00s [113/156] Installing authselect-0:1.5.0 100% | 38.6 MiB/s | 157.9 KiB | 00m00s [114/156] Installing cracklib-0:2.9.11- 100% | 30.6 MiB/s | 250.3 KiB | 00m00s [115/156] Installing libpwquality-0:1.4 100% | 38.2 MiB/s | 430.1 KiB | 00m00s [116/156] Installing libnsl2-0:2.0.1-1. 100% | 19.2 MiB/s | 59.0 KiB | 00m00s [117/156] Installing pam-0:1.6.1-3.fc41 100% | 60.6 MiB/s | 1.8 MiB | 00m00s [118/156] Installing libssh-0:0.10.6-6. 100% | 125.8 MiB/s | 515.4 KiB | 00m00s [119/156] Installing rpm-sequoia-0:1.6. 100% | 221.0 MiB/s | 2.2 MiB | 00m00s [120/156] Installing rpm-libs-0:4.19.91 100% | 175.6 MiB/s | 719.3 KiB | 00m00s [121/156] Installing rpm-build-libs-0:4 100% | 101.3 MiB/s | 207.5 KiB | 00m00s [122/156] Installing libevent-0:2.1.12- 100% | 175.7 MiB/s | 899.4 KiB | 00m00s [123/156] Installing openldap-0:2.6.8-2 100% | 125.8 MiB/s | 644.0 KiB | 00m00s [124/156] Installing libcurl-0:8.8.0-1. 100% | 197.0 MiB/s | 806.8 KiB | 00m00s [125/156] Installing elfutils-debuginfo 100% | 32.7 MiB/s | 66.9 KiB | 00m00s [126/156] Installing elfutils-0:0.191-7 100% | 232.0 MiB/s | 2.6 MiB | 00m00s [127/156] Installing binutils-0:2.42.50 100% | 228.9 MiB/s | 26.8 MiB | 00m00s >>> Running post-install scriptlet: binutils-0:2.42.50-14.fc41.x86_64 >>> Stop post-install scriptlet: binutils-0:2.42.50-14.fc41.x86_64 [128/156] Installing gdb-minimal-0:14.2 100% | 277.1 MiB/s | 12.7 MiB | 00m00s [129/156] Installing debugedit-0:5.0-16 100% | 65.8 MiB/s | 202.0 KiB | 00m00s [130/156] Installing curl-0:8.8.0-1.fc4 100% | 36.4 MiB/s | 746.2 KiB | 00m00s >>> Running pre-install scriptlet: rpm-0:4.19.91-13.fc41.x86_64 >>> Stop pre-install scriptlet: rpm-0:4.19.91-13.fc41.x86_64 [131/156] Installing rpm-0:4.19.91-13.f 100% | 83.0 MiB/s | 2.5 MiB | 00m00s [132/156] Installing efi-srpm-macros-0: 100% | 20.1 MiB/s | 41.2 KiB | 00m00s [133/156] Installing lua-srpm-macros-0: 100% | 1.9 MiB/s | 1.9 KiB | 00m00s [134/156] Installing zig-srpm-macros-0: 100% | 1.6 MiB/s | 1.7 KiB | 00m00s [135/156] Installing rust-srpm-macros-0 100% | 5.4 MiB/s | 5.6 KiB | 00m00s [136/156] Installing qt6-srpm-macros-0: 100% | 714.8 KiB/s | 732.0 B | 00m00s [137/156] Installing qt5-srpm-macros-0: 100% | 757.8 KiB/s | 776.0 B | 00m00s [138/156] Installing perl-srpm-macros-0 100% | 1.1 MiB/s | 1.1 KiB | 00m00s [139/156] Installing package-notes-srpm 100% | 2.0 MiB/s | 2.0 KiB | 00m00s [140/156] Installing openblas-srpm-macr 100% | 0.0 B/s | 392.0 B | 00m00s [141/156] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.2 KiB | 00m00s [142/156] Installing kernel-srpm-macros 100% | 0.0 B/s | 2.3 KiB | 00m00s [143/156] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [144/156] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [145/156] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [146/156] Installing ansible-srpm-macro 100% | 35.4 MiB/s | 36.2 KiB | 00m00s [147/156] Installing python-srpm-macros 100% | 50.5 MiB/s | 51.7 KiB | 00m00s [148/156] Installing fonts-srpm-macros- 100% | 55.7 MiB/s | 57.0 KiB | 00m00s [149/156] Installing go-srpm-macros-0:3 100% | 60.5 MiB/s | 62.0 KiB | 00m00s [150/156] Installing forge-srpm-macros- 100% | 39.4 MiB/s | 40.3 KiB | 00m00s [151/156] Installing redhat-rpm-config- 100% | 46.4 MiB/s | 190.1 KiB | 00m00s [152/156] Installing rpm-build-0:4.19.9 100% | 39.6 MiB/s | 202.6 KiB | 00m00s [153/156] Installing pyproject-srpm-mac 100% | 1.0 MiB/s | 2.1 KiB | 00m00s [154/156] Installing util-linux-0:2.40. 100% | 85.1 MiB/s | 3.7 MiB | 00m00s >>> Running post-install scriptlet: util-linux-0:2.40.1-2.fc41.x86_64 >>> Stop post-install scriptlet: util-linux-0:2.40.1-2.fc41.x86_64 [155/156] Installing which-0:2.21-41.fc 100% | 40.3 MiB/s | 82.4 KiB | 00m00s warning: posix.fork(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.exec(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead [156/156] Installing info-0:7.1-2.fc40. 100% | 277.9 KiB/s | 358.2 KiB | 00m01s >>> Running post-transaction scriptlet: filesystem-0:3.18-9.fc41.x86_64 >>> Stop post-transaction scriptlet: filesystem-0:3.18-9.fc41.x86_64 >>> Running post-transaction scriptlet: ca-certificates-0:2023.2.62_v7.0.401-6.f >>> Stop post-transaction scriptlet: ca-certificates-0:2023.2.62_v7.0.401-6.fc40 >>> Running post-transaction scriptlet: authselect-libs-0:1.5.0-5.fc41.x86_64 >>> Stop post-transaction scriptlet: authselect-libs-0:1.5.0-5.fc41.x86_64 >>> Running post-transaction scriptlet: rpm-0:4.19.91-13.fc41.x86_64 >>> Stop post-transaction scriptlet: rpm-0:4.19.91-13.fc41.x86_64 >>> Running trigger-install scriptlet: glibc-common-0:2.39.9000-26.fc41.x86_64 >>> Stop trigger-install scriptlet: glibc-common-0:2.39.9000-26.fc41.x86_64 >>> Running trigger-install scriptlet: info-0:7.1-2.fc40.x86_64 >>> Stop trigger-install scriptlet: info-0:7.1-2.fc40.x86_64 Warning: skipped PGP checks for 3 packages from repository: copr_base Finish: installing minimal buildroot with dnf5 Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: add-determinism-0.3.0-2.fc41.x86_64 alternatives-1.27-1.fc41.x86_64 ansible-srpm-macros-1-15.fc41.noarch audit-libs-4.0.1-3.fc41.x86_64 authselect-1.5.0-5.fc41.x86_64 authselect-libs-1.5.0-5.fc41.x86_64 basesystem-11-20.fc40.noarch bash-5.2.26-3.fc40.x86_64 binutils-2.42.50-14.fc41.x86_64 build-reproducibility-srpm-macros-0.3.0-2.fc41.noarch bzip2-1.0.8-18.fc40.x86_64 bzip2-libs-1.0.8-18.fc40.x86_64 ca-certificates-2023.2.62_v7.0.401-6.fc40.noarch coreutils-9.5-2.fc41.x86_64 coreutils-common-9.5-2.fc41.x86_64 cpio-2.15-1.fc40.x86_64 cracklib-2.9.11-5.fc40.x86_64 crypto-policies-20240521-1.gitf71d135.fc41.noarch curl-8.8.0-1.fc41.x86_64 cyrus-sasl-lib-2.1.28-22.fc41.x86_64 debugedit-5.0-16.fc41.x86_64 diffutils-3.10-5.fc40.x86_64 dwz-0.15-6.fc40.x86_64 ed-1.20.2-1.fc41.x86_64 efi-srpm-macros-5-11.fc40.noarch elfutils-0.191-7.fc41.x86_64 elfutils-debuginfod-client-0.191-7.fc41.x86_64 elfutils-default-yama-scope-0.191-7.fc41.noarch elfutils-libelf-0.191-7.fc41.x86_64 elfutils-libs-0.191-7.fc41.x86_64 fedora-gpg-keys-41-0.2.noarch fedora-release-41-0.13.noarch fedora-release-common-41-0.13.noarch fedora-release-identity-basic-41-0.13.noarch fedora-repos-41-0.2.noarch fedora-repos-rawhide-41-0.2.noarch file-5.45-6.fc41.x86_64 file-libs-5.45-6.fc41.x86_64 filesystem-3.18-9.fc41.x86_64 findutils-4.10.0-2.fc41.x86_64 fonts-srpm-macros-2.0.5-16.fc41.noarch forge-srpm-macros-0.3.1-1.fc41.noarch fpc-srpm-macros-1.3-12.fc40.noarch gawk-5.3.0-3.fc40.x86_64 gdb-minimal-14.2-12.fc41.x86_64 gdbm-1.23-6.fc40.x86_64 gdbm-libs-1.23-6.fc40.x86_64 ghc-srpm-macros-1.9.1-1.fc41.noarch glibc-2.39.9000-26.fc41.x86_64 glibc-common-2.39.9000-26.fc41.x86_64 glibc-gconv-extra-2.39.9000-26.fc41.x86_64 glibc-minimal-langpack-2.39.9000-26.fc41.x86_64 gmp-6.3.0-1.fc41.x86_64 gnat-srpm-macros-6-5.fc40.noarch go-srpm-macros-3.6.0-1.fc41.noarch gpg-pubkey-a15b79cc-63d04c2c gpg-pubkey-e99d6ad1-64d2612c grep-3.11-8.fc41.x86_64 gzip-1.13-1.fc40.x86_64 info-7.1-2.fc40.x86_64 jansson-2.13.1-9.fc40.x86_64 kernel-srpm-macros-1.0-23.fc41.noarch keyutils-libs-1.6.3-3.fc40.x86_64 krb5-libs-1.21.2-5.fc40.x86_64 libacl-2.3.2-1.fc40.x86_64 libarchive-3.7.4-1.fc41.x86_64 libattr-2.5.2-3.fc40.x86_64 libblkid-2.40.1-2.fc41.x86_64 libbrotli-1.1.0-4.fc41.x86_64 libcap-2.70-1.fc41.x86_64 libcap-ng-0.8.5-2.fc41.x86_64 libcom_err-1.47.0-5.fc40.x86_64 libcurl-8.8.0-1.fc41.x86_64 libeconf-0.6.2-2.fc41.x86_64 libevent-2.1.12-13.fc41.x86_64 libfdisk-2.40.1-2.fc41.x86_64 libffi-3.4.6-1.fc41.x86_64 libgcc-14.1.1-5.fc41.x86_64 libgomp-14.1.1-5.fc41.x86_64 libidn2-2.3.7-1.fc40.x86_64 libmount-2.40.1-2.fc41.x86_64 libnghttp2-1.62.0-1.fc41.x86_64 libnsl2-2.0.1-1.fc40.x86_64 libpkgconf-2.1.1-1.fc41.x86_64 libpsl-0.21.5-3.fc40.x86_64 libpwquality-1.4.5-10.fc41.x86_64 libselinux-3.6-6.fc41.x86_64 libsemanage-3.6-4.fc41.x86_64 libsepol-3.6-3.fc40.x86_64 libsmartcols-2.40.1-2.fc41.x86_64 libssh-0.10.6-6.fc41.x86_64 libssh-config-0.10.6-6.fc41.noarch libstdc++-14.1.1-5.fc41.x86_64 libtasn1-4.19.0-6.fc40.x86_64 libtirpc-1.3.4-1.rc3.fc41.x86_64 libtool-ltdl-2.4.7-11.fc41.x86_64 libunistring-1.1-7.fc41.x86_64 libutempter-1.2.1-13.fc40.x86_64 libuuid-2.40.1-2.fc41.x86_64 libverto-0.3.2-8.fc40.x86_64 libxcrypt-4.4.36-5.fc40.x86_64 libxml2-2.12.8-1.fc41.x86_64 libzstd-1.5.6-1.fc41.x86_64 lua-libs-5.4.6-5.fc40.x86_64 lua-srpm-macros-1-13.fc40.noarch lz4-libs-1.9.4-6.fc40.x86_64 mpfr-4.2.1-4.fc41.x86_64 ncurses-base-6.4-12.20240127.fc40.noarch ncurses-libs-6.4-12.20240127.fc40.x86_64 ocaml-srpm-macros-10-2.fc41.noarch openblas-srpm-macros-2-17.fc41.noarch openldap-2.6.8-2.fc41.x86_64 openssl-libs-3.2.2-1.fc41.x86_64 p11-kit-0.25.3-4.fc40.x86_64 p11-kit-trust-0.25.3-4.fc40.x86_64 package-notes-srpm-macros-0.5-11.fc40.noarch pam-1.6.1-3.fc41.x86_64 pam-libs-1.6.1-3.fc41.x86_64 patch-2.7.6-24.fc40.x86_64 pcre2-10.43-2.fc41.1.x86_64 pcre2-syntax-10.43-2.fc41.1.noarch perl-srpm-macros-1-55.fc41.noarch pkgconf-2.1.1-1.fc41.x86_64 pkgconf-m4-2.1.1-1.fc41.noarch pkgconf-pkg-config-2.1.1-1.fc41.x86_64 popt-1.19-6.fc40.x86_64 publicsuffix-list-dafsa-20240107-3.fc40.noarch pyproject-srpm-macros-1.12.1-1.fc41.noarch python-srpm-macros-3.13-1.fc41.noarch qt5-srpm-macros-5.15.14-1.fc41.noarch qt6-srpm-macros-6.7.1-1.fc41.noarch readline-8.2-8.fc40.x86_64 redhat-rpm-config-293-1.fc41.noarch rpm-4.19.91-13.fc41.x86_64 rpm-build-4.19.91-13.fc41.x86_64 rpm-build-libs-4.19.91-13.fc41.x86_64 rpm-libs-4.19.91-13.fc41.x86_64 rpm-sequoia-1.6.0-3.fc41.x86_64 rust-srpm-macros-26.3-1.fc41.noarch sed-4.9-1.fc40.x86_64 setup-2.15.0-4.fc41.noarch shadow-utils-4.15.1-5.fc41.x86_64 sqlite-libs-3.46.0-2.fc41.x86_64 systemd-libs-256.1-3.fc41.x86_64 tar-1.35-3.fc40.x86_64 unzip-6.0-63.fc40.x86_64 util-linux-2.40.1-2.fc41.x86_64 util-linux-core-2.40.1-2.fc41.x86_64 which-2.21-41.fc40.x86_64 xxhash-libs-0.8.2-2.fc40.x86_64 xz-5.4.6-3.fc41.x86_64 xz-libs-5.4.6-3.fc41.x86_64 zig-srpm-macros-1-2.fc40.noarch zip-3.0-40.fc40.x86_64 zlib-ng-compat-2.1.6-6.fc41.x86_64 zstd-1.5.6-1.fc41.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1718409600 Wrote: /builddir/build/SRPMS/python-csvkit-1.1.1-6.fc41.src.rpm Finish: rpmbuild -bs cp: preserving permissions for ‘/var/lib/copr-rpmbuild/results/chroot_scan/var/lib/mock/fedora-rawhide-x86_64-1718973529.470161/root/var/log’: No such file or directory INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1718973529.470161/root/var/log/dnf5.log Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-mwzxxiea/python-csvkit/python-csvkit.spec) Config(child) 0 minutes 25 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-csvkit-1.1.1-6.fc41.src.rpm) Config(fedora-rawhide-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1718973529.470161/root. INFO: reusing tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1718973529.470161/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1718973529.470161/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.19.91-13.fc41.x86_64 rpm-sequoia-1.6.0-3.fc41.x86_64 dnf5-5.2.3.0-3.fc41.x86_64 dnf5-plugins-5.2.3.0-3.fc41.x86_64 Finish: chroot init Start: build phase for python-csvkit-1.1.1-6.fc41.src.rpm Start: build setup for python-csvkit-1.1.1-6.fc41.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1718409600 Wrote: /builddir/build/SRPMS/python-csvkit-1.1.1-6.fc41.src.rpm Updating and loading repositories: Copr repository 100% | 1.3 KiB/s | 1.5 KiB | 00m01s fedora 100% | 1.0 MiB/s | 23.9 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: make x86_64 1:4.4.1-6.fc40 fedora 1.8 MiB python-sphinx-doc noarch 1:7.2.6-8.fc41 fedora 9.5 MiB python3-agate noarch 1.11.0-1.fc41 fedora 575.2 KiB python3-agate-dbf noarch 0.2.2-8.fc41 fedora 7.3 KiB python3-agate-excel noarch 0.4.0-4.fc41 fedora 34.3 KiB python3-agate-sql noarch 0.7.0-4.fc41 fedora 37.6 KiB python3-devel x86_64 3.13.0~b2-3.fc41 fedora 1.7 MiB python3-pytest noarch 8.2.2-2.fc41 copr_base 19.1 MiB python3-setuptools noarch 69.2.0-6.fc41 fedora 7.3 MiB python3-six noarch 1.16.0-22.fc41 fedora 159.4 KiB python3-sphinx_rtd_theme noarch 2.0.0-4.fc41 fedora 317.9 KiB Installing dependencies: expat x86_64 2.6.2-1.fc41 fedora 280.8 KiB fontawesome4-fonts noarch 1:4.7.0-22.fc41 fedora 296.6 KiB fonts-filesystem noarch 1:2.0.5-16.fc41 fedora 0.0 B gc x86_64 8.2.2-6.fc40 fedora 258.7 KiB google-roboto-slab-fonts noarch 1.100263-0.23.20150923git.fc40 fedora 699.6 KiB guile30 x86_64 3.0.9-1.fc41 fedora 52.7 MiB lato-fonts noarch 2.015-20.fc40 fedora 11.3 MiB libb2 x86_64 0.98.1-11.fc40 fedora 42.2 KiB mpdecimal x86_64 2.5.1-9.fc40 fedora 200.9 KiB pyproject-rpm-macros noarch 1.12.1-1.fc41 copr_base 99.6 KiB python-pip-wheel noarch 24.0-5.fc41 fedora 1.5 MiB python-rpm-macros noarch 3.13-1.fc41 fedora 22.1 KiB python3 x86_64 3.13.0~b2-3.fc41 fedora 31.8 KiB python3-babel noarch 2.15.0-3.fc41 copr_base 28.4 MiB python3-charset-normalizer noarch 3.3.2-4.fc41 copr_base 315.0 KiB python3-dbfread noarch 2.0.7-28.git300b2d7.fc41 fedora 116.5 KiB python3-docutils noarch 0.20.1-5.fc41 fedora 4.9 MiB python3-et_xmlfile noarch 1.1.0-9.fc41 fedora 13.2 KiB python3-greenlet x86_64 3.0.3-5.fc41 fedora 946.0 KiB python3-idna noarch 3.7-2.fc41 fedora 595.9 KiB python3-imagesize noarch 1.4.1-8.fc41 fedora 35.3 KiB python3-iniconfig noarch 1.1.1-22.fc41 fedora 20.6 KiB python3-isodate noarch 0.6.1-12.fc41 fedora 274.5 KiB python3-jdcal noarch 1.4.1-11.fc41 fedora 35.3 KiB python3-jinja2 noarch 3.1.4-4.fc41 fedora 2.9 MiB python3-leather noarch 0.4.0-1 fedora 183.2 KiB python3-libs x86_64 3.13.0~b2-3.fc41 fedora 40.5 MiB python3-markupsafe x86_64 2.1.5-2.fc41 fedora 57.5 KiB python3-olefile noarch 0.47-4.fc41 fedora 340.8 KiB python3-openpyxl noarch 3.1.2-6.fc41 fedora 1.9 MiB python3-packaging noarch 24.1-1.fc41 fedora 422.7 KiB python3-parsedatetime noarch 2.6-13.fc41 fedora 414.2 KiB python3-pluggy noarch 1.5.0-1.fc41 copr_base 193.4 KiB python3-pygments noarch 2.17.2-6.fc41 fedora 10.4 MiB python3-pytimeparse noarch 1.1.8-19.fc41 fedora 65.9 KiB python3-requests noarch 2.31.0-7.fc41 fedora 466.1 KiB python3-rpm-generators noarch 14-10.fc40 fedora 81.7 KiB python3-rpm-macros noarch 3.13-1.fc41 fedora 6.4 KiB python3-slugify noarch 6.1.2-7.fc41 fedora 44.3 KiB python3-snowballstemmer noarch 2.2.0-11.fc41 fedora 1.7 MiB python3-sphinx noarch 1:7.2.6-8.fc41 fedora 10.9 MiB python3-sphinx-theme-alabaster noarch 0.7.16-5.fc41 fedora 41.9 KiB python3-sphinxcontrib-jquery noarch 4.1-8.fc41 fedora 381.8 KiB python3-sqlalchemy x86_64 2.0.30-5.fc41 fedora 22.8 MiB python3-text-unidecode noarch 1.3-16.fc41 fedora 315.5 KiB python3-typing-extensions noarch 4.12.2-2.fc41 fedora 464.8 KiB python3-urllib3 noarch 1.26.18-6.fc41 fedora 1.0 MiB python3-xlrd noarch 2.0.1-16.fc41 fedora 1.0 MiB tzdata noarch 2024a-8.fc41 fedora 1.7 MiB Transaction Summary: Installing: 60 packages Total size of inbound packages is 49 MiB. Need to download 11 MiB. After this operation 242 MiB will be used (install 242 MiB, remove 0 B). [ 1/60] make-1:4.4.1-6.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/60] python3-setuptools-0:69.2.0-6.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/60] python3-six-0:1.16.0-22.fc41.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/60] python3-devel-0:3.13.0~b2-3.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/60] python3-pytest-0:8.2.2-2.fc41.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/60] guile30-0:3.0.9-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/60] python3-docutils-0:0.20.1-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/60] python3-sphinx-1:7.2.6-8.fc41.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/60] python3-libs-0:3.13.0~b2-3.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [10/60] python3-pluggy-0:1.5.0-1.fc41.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [11/60] python3-iniconfig-0:1.1.1-22.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [12/60] python3-packaging-0:24.1-1.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [13/60] gc-0:8.2.2-6.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [14/60] fonts-filesystem-1:2.0.5-16.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [15/60] python3-imagesize-0:1.4.1-8.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [16/60] python3-jinja2-0:3.1.4-4.fc41.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [17/60] python3-pygments-0:2.17.2-6.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [18/60] python3-requests-0:2.31.0-7.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [19/60] python3-snowballstemmer-0:2.2.0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [20/60] python3-sphinx-theme-alabaster- 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [21/60] expat-0:2.6.2-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [22/60] libb2-0:0.98.1-11.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [23/60] mpdecimal-0:2.5.1-9.fc40.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [24/60] python-pip-wheel-0:24.0-5.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [25/60] tzdata-0:2024a-8.fc41.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [26/60] python3-markupsafe-0:2.1.5-2.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [27/60] python3-idna-0:3.7-2.fc41.noarc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [28/60] python3-urllib3-0:1.26.18-6.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [29/60] python-rpm-macros-0:3.13-1.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [30/60] python3-rpm-generators-0:14-10. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [31/60] python3-rpm-macros-0:3.13-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [32/60] python3-0:3.13.0~b2-3.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [33/60] python3-babel-0:2.15.0-3.fc41.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [34/60] python3-charset-normalizer-0:3. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [35/60] pyproject-rpm-macros-0:1.12.1-1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [36/60] python3-typing-extensions-0:4.1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [37/60] python3-sphinx_rtd_theme-0:2.0. 100% | 418.7 KiB/s | 84.2 KiB | 00m00s [38/60] python3-agate-dbf-0:0.2.2-8.fc4 100% | 356.1 KiB/s | 13.9 KiB | 00m00s [39/60] python3-agate-0:1.11.0-1.fc41.n 100% | 906.6 KiB/s | 230.3 KiB | 00m00s [40/60] python3-agate-excel-0:0.4.0-4.f 100% | 604.1 KiB/s | 23.0 KiB | 00m00s [41/60] python3-agate-sql-0:0.7.0-4.fc4 100% | 700.6 KiB/s | 23.1 KiB | 00m00s [42/60] google-roboto-slab-fonts-0:1.10 100% | 3.7 MiB/s | 238.8 KiB | 00m00s [43/60] fontawesome4-fonts-1:4.7.0-22.f 100% | 2.1 MiB/s | 204.4 KiB | 00m00s [44/60] python-sphinx-doc-1:7.2.6-8.fc4 100% | 3.6 MiB/s | 1.5 MiB | 00m00s [45/60] python3-sphinxcontrib-jquery-0: 100% | 2.8 MiB/s | 113.8 KiB | 00m00s [46/60] python3-isodate-0:0.6.1-12.fc41 100% | 2.4 MiB/s | 78.1 KiB | 00m00s [47/60] python3-leather-0:0.4.0-1.noarc 100% | 1.8 MiB/s | 82.6 KiB | 00m00s [48/60] python3-parsedatetime-0:2.6-13. 100% | 2.4 MiB/s | 104.5 KiB | 00m00s [49/60] python3-pytimeparse-0:1.1.8-19. 100% | 655.8 KiB/s | 24.3 KiB | 00m00s [50/60] python3-slugify-0:6.1.2-7.fc41. 100% | 902.1 KiB/s | 30.7 KiB | 00m00s [51/60] lato-fonts-0:2.015-20.fc40.noar 100% | 16.5 MiB/s | 3.1 MiB | 00m00s [52/60] python3-dbfread-0:2.0.7-28.git3 100% | 1.3 MiB/s | 60.1 KiB | 00m00s [53/60] python3-openpyxl-0:3.1.2-6.fc41 100% | 14.9 MiB/s | 612.3 KiB | 00m00s [54/60] python3-xlrd-0:2.0.1-16.fc41.no 100% | 4.2 MiB/s | 219.9 KiB | 00m00s [55/60] python3-olefile-0:0.47-4.fc41.n 100% | 739.9 KiB/s | 74.7 KiB | 00m00s [56/60] python3-text-unidecode-0:1.3-16 100% | 2.1 MiB/s | 67.8 KiB | 00m00s [57/60] python3-et_xmlfile-0:1.1.0-9.fc 100% | 529.7 KiB/s | 15.9 KiB | 00m00s [58/60] python3-jdcal-0:1.4.1-11.fc41.n 100% | 570.3 KiB/s | 17.7 KiB | 00m00s [59/60] python3-greenlet-0:3.0.3-5.fc41 100% | 4.7 MiB/s | 257.7 KiB | 00m00s [60/60] python3-sqlalchemy-0:2.0.30-5.f 100% | 39.0 MiB/s | 3.7 MiB | 00m00s -------------------------------------------------------------------------------- [60/60] Total 100% | 14.6 MiB/s | 10.7 MiB | 00m01s Running transaction [ 1/62] Verify package files 100% | 331.0 B/s | 60.0 B | 00m00s [ 2/62] Prepare transaction 100% | 472.0 B/s | 60.0 B | 00m00s [ 3/62] Installing python-rpm-macros-0: 100% | 22.3 MiB/s | 22.8 KiB | 00m00s [ 4/62] Installing fonts-filesystem-1:2 100% | 769.5 KiB/s | 788.0 B | 00m00s [ 5/62] Installing python3-rpm-macros-0 100% | 0.0 B/s | 6.7 KiB | 00m00s [ 6/62] Installing pyproject-rpm-macros 100% | 99.2 MiB/s | 101.6 KiB | 00m00s [ 7/62] Installing fontawesome4-fonts-1 100% | 145.4 MiB/s | 297.8 KiB | 00m00s [ 8/62] Installing google-roboto-slab-f 100% | 228.3 MiB/s | 701.4 KiB | 00m00s [ 9/62] Installing lato-fonts-0:2.015-2 100% | 263.6 MiB/s | 11.3 MiB | 00m00s [10/62] Installing tzdata-0:2024a-8.fc4 100% | 27.7 MiB/s | 1.9 MiB | 00m00s [11/62] Installing python-pip-wheel-0:2 100% | 509.3 MiB/s | 1.5 MiB | 00m00s [12/62] Installing mpdecimal-0:2.5.1-9. 100% | 98.6 MiB/s | 202.0 KiB | 00m00s [13/62] Installing libb2-0:0.98.1-11.fc 100% | 42.3 MiB/s | 43.3 KiB | 00m00s [14/62] Installing expat-0:2.6.2-1.fc41 100% | 39.5 MiB/s | 282.9 KiB | 00m00s [15/62] Installing python3-libs-0:3.13. 100% | 216.0 MiB/s | 40.8 MiB | 00m00s [16/62] Installing python3-0:3.13.0~b2- 100% | 32.8 MiB/s | 33.6 KiB | 00m00s [17/62] Installing python3-packaging-0: 100% | 84.7 MiB/s | 433.5 KiB | 00m00s [18/62] Installing python3-docutils-0:0 100% | 143.4 MiB/s | 5.0 MiB | 00m00s [19/62] Installing python3-idna-0:3.7-2 100% | 98.0 MiB/s | 602.2 KiB | 00m00s [20/62] Installing python3-babel-0:2.15 100% | 225.3 MiB/s | 28.6 MiB | 00m00s [21/62] Installing python3-urllib3-0:1. 100% | 115.8 MiB/s | 1.0 MiB | 00m00s [22/62] Installing python3-rpm-generato 100% | 81.0 MiB/s | 82.9 KiB | 00m00s [23/62] Installing python3-six-0:1.16.0 100% | 79.0 MiB/s | 161.8 KiB | 00m00s [24/62] Installing python3-isodate-0:0. 100% | 69.9 MiB/s | 286.2 KiB | 00m00s [25/62] Installing python3-leather-0:0. 100% | 32.9 MiB/s | 202.1 KiB | 00m00s [26/62] Installing python3-parsedatetim 100% | 103.9 MiB/s | 425.6 KiB | 00m00s [27/62] Installing python3-pytimeparse- 100% | 34.5 MiB/s | 70.7 KiB | 00m00s [28/62] Installing python3-dbfread-0:2. 100% | 41.5 MiB/s | 127.5 KiB | 00m00s [29/62] Installing python3-olefile-0:0. 100% | 168.0 MiB/s | 344.0 KiB | 00m00s [30/62] Installing python3-xlrd-0:2.0.1 100% | 202.0 MiB/s | 1.0 MiB | 00m00s [31/62] Installing python3-pluggy-0:1.5 100% | 97.5 MiB/s | 199.6 KiB | 00m00s [32/62] Installing python3-iniconfig-0: 100% | 11.5 MiB/s | 23.6 KiB | 00m00s [33/62] Installing python3-imagesize-0: 100% | 9.4 MiB/s | 38.4 KiB | 00m00s [34/62] Installing python3-pygments-0:2 100% | 171.2 MiB/s | 10.6 MiB | 00m00s [35/62] Installing python3-snowballstem 100% | 193.8 MiB/s | 1.7 MiB | 00m00s [36/62] Installing python3-sphinx-theme 100% | 22.7 MiB/s | 46.4 KiB | 00m00s [37/62] Installing python3-text-unideco 100% | 155.4 MiB/s | 318.2 KiB | 00m00s [38/62] Installing python3-slugify-0:6. 100% | 16.2 MiB/s | 49.9 KiB | 00m00s [39/62] Installing python3-agate-0:1.11 100% | 47.7 MiB/s | 635.6 KiB | 00m00s [40/62] Installing python3-markupsafe-0 100% | 30.1 MiB/s | 61.5 KiB | 00m00s [41/62] Installing python3-jinja2-0:3.1 100% | 223.4 MiB/s | 2.9 MiB | 00m00s [42/62] Installing python3-jdcal-0:1.4. 100% | 36.4 MiB/s | 37.3 KiB | 00m00s [43/62] Installing python3-et_xmlfile-0 100% | 5.3 MiB/s | 16.3 KiB | 00m00s [44/62] Installing python3-openpyxl-0:3 100% | 71.6 MiB/s | 2.0 MiB | 00m00s [45/62] Installing python3-charset-norm 100% | 79.3 MiB/s | 324.9 KiB | 00m00s [46/62] Installing python3-requests-0:2 100% | 66.7 MiB/s | 478.2 KiB | 00m00s [47/62] Installing python3-sphinx-1:7.2 100% | 133.3 MiB/s | 11.1 MiB | 00m00s [48/62] Installing python3-sphinxcontri 100% | 125.3 MiB/s | 385.0 KiB | 00m00s [49/62] Installing python3-typing-exten 100% | 152.1 MiB/s | 467.2 KiB | 00m00s [50/62] Installing python3-greenlet-0:3 100% | 79.4 MiB/s | 975.3 KiB | 00m00s [51/62] Installing python3-sqlalchemy-0 100% | 261.2 MiB/s | 23.0 MiB | 00m00s [52/62] Installing gc-0:8.2.2-6.fc40.x8 100% | 63.8 MiB/s | 261.2 KiB | 00m00s [53/62] Installing guile30-0:3.0.9-1.fc 100% | 314.3 MiB/s | 52.8 MiB | 00m00s [54/62] Installing make-1:4.4.1-6.fc40. 100% | 200.0 MiB/s | 1.8 MiB | 00m00s [55/62] Installing python3-agate-sql-0: 100% | 20.1 MiB/s | 41.2 KiB | 00m00s [56/62] Installing python3-sphinx_rtd_t 100% | 33.0 MiB/s | 338.4 KiB | 00m00s [57/62] Installing python3-agate-excel- 100% | 18.8 MiB/s | 38.4 KiB | 00m00s [58/62] Installing python3-agate-dbf-0: 100% | 3.5 MiB/s | 10.8 KiB | 00m00s [59/62] Installing python3-pytest-0:8.2 100% | 260.9 MiB/s | 19.3 MiB | 00m00s [60/62] Installing python3-devel-0:3.13 100% | 98.3 MiB/s | 1.8 MiB | 00m00s [61/62] Installing python3-setuptools-0 100% | 146.1 MiB/s | 7.4 MiB | 00m00s warning: posix.fork(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead warning: posix.exec(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.execute() instead [62/62] Installing python-sphinx-doc-1: 100% | 73.3 MiB/s | 9.5 MiB | 00m00s >>> Running trigger-install scriptlet: glibc-common-0:2.39.9000-26.fc41.x86_64 >>> Stop trigger-install scriptlet: glibc-common-0:2.39.9000-26.fc41.x86_64 >>> Running trigger-install scriptlet: info-0:7.1-2.fc40.x86_64 >>> Stop trigger-install scriptlet: info-0:7.1-2.fc40.x86_64 Warning: skipped PGP checks for 5 packages from repository: copr_base Finish: build setup for python-csvkit-1.1.1-6.fc41.src.rpm Start: rpmbuild python-csvkit-1.1.1-6.fc41.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1718409600 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.gbNHBp + umask 022 + cd /builddir/build/BUILD/python-csvkit-1.1.1-build + test -d /builddir/build/BUILD/python-csvkit-1.1.1-build + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /builddir/build/BUILD/python-csvkit-1.1.1-build + /usr/bin/rm -rf /builddir/build/BUILD/python-csvkit-1.1.1-build + /usr/bin/mkdir -p /builddir/build/BUILD/python-csvkit-1.1.1-build + /usr/bin/mkdir -p /builddir/build/BUILD/python-csvkit-1.1.1-build/SPECPARTS + RPM_EC=0 ++ jobs -p + exit 0 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.ytnMQx + umask 022 + cd /builddir/build/BUILD/python-csvkit-1.1.1-build + cd /builddir/build/BUILD/python-csvkit-1.1.1-build + rm -rf csvkit-1.1.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/csvkit-1.1.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd csvkit-1.1.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm -rf csvkit.egg-info + find csvkit -name '*.py' -type f + xargs sed -i '1{\@^#!/usr/bin/env python@d}' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.ELu15S + umask 022 + cd /builddir/build/BUILD/python-csvkit-1.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 csvkit-1.1.1 + 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 ' + 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 ' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -sP' running build running build_py creating build creating build/lib creating build/lib/csvkit copying csvkit/__init__.py -> build/lib/csvkit copying csvkit/cleanup.py -> build/lib/csvkit copying csvkit/cli.py -> build/lib/csvkit copying csvkit/exceptions.py -> build/lib/csvkit copying csvkit/grep.py -> build/lib/csvkit creating build/lib/csvkit/convert copying csvkit/convert/__init__.py -> build/lib/csvkit/convert copying csvkit/convert/fixed.py -> build/lib/csvkit/convert copying csvkit/convert/geojs.py -> build/lib/csvkit/convert creating build/lib/csvkit/utilities copying csvkit/utilities/__init__.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvclean.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvcut.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvformat.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvgrep.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvjoin.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvjson.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvlook.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvpy.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvsort.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvsql.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvstack.py -> build/lib/csvkit/utilities copying csvkit/utilities/csvstat.py -> build/lib/csvkit/utilities copying csvkit/utilities/in2csv.py -> build/lib/csvkit/utilities copying csvkit/utilities/sql2csv.py -> build/lib/csvkit/utilities + cd docs + make html sphinx-build -b html -d _build/doctrees . _build/html Running Sphinx v7.2.6 making output directory... done loading intersphinx inventory from https://docs.python.org/3.5/objects.inv... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/3.5/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /3.5/objects.inv (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')) building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 27 source files that are out of date updating environment: [new config] 27 added, 0 changed, 0 removed reading sources... [100%] tutorial/4_going_elsewhere looking for now-outdated files... /builddir/build/BUILD/python-csvkit-1.1.1-build/csvkit-1.1.1/docs/scripts/csvstack.rst:37: ERROR: Unknown directive type "warn". .. warn:: If you redirect output to an input file like :code:`csvstack file.csv > file.csv`, the file will grow indefinitely. none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... done copying extra files... done done writing output... [100%] tutorial/4_going_elsewhere generating indices... genindex /builddir/build/BUILD/python-csvkit-1.1.1-build/csvkit-1.1.1/docs/cli.rst:57: WARNING: unknown document: 'csvsql' /builddir/build/BUILD/python-csvkit-1.1.1-build/csvkit-1.1.1/docs/tutorial/2_examining_the_data.rst:8: WARNING: unknown document: 'csvlook' /builddir/build/BUILD/python-csvkit-1.1.1-build/csvkit-1.1.1/docs/tutorial/2_examining_the_data.rst:8: WARNING: unknown document: 'csvcut' /builddir/build/BUILD/python-csvkit-1.1.1-build/csvkit-1.1.1/docs/tutorial/2_examining_the_data.rst:62: WARNING: unknown document: 'csvstat' done writing additional pages... search done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 6 warnings. The HTML pages are in _build/html. Build finished. The HTML pages are in _build/html. + make man sphinx-build -b man -d _build/doctrees . _build/man Running Sphinx v7.2.6 making output directory... done loading pickled environment... done loading intersphinx inventory from https://docs.python.org/3.5/objects.inv... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/3.5/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /3.5/objects.inv (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')) building [mo]: targets for 0 po files that are out of date writing output... building [man]: all manpages updating environment: 0 added, 0 changed, 0 removed reading sources... looking for now-outdated files... none found writing... csvclean.1 { } csvcut.1 { } csvformat.1 { } csvgrep.1 { } csvjoin.1 { } csvjson.1 { } csvlook.1 { } csvpy.1 { } csvsort.1 { } csvsql.1 { } csvstack.1 { } csvstat.1 { } in2csv.1 { } sql2csv.1 { } done build succeeded, 1 warning. The manual pages are in _build/man. Build finished. The manual pages are in _build/man. + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.N7tvka + umask 022 + cd /builddir/build/BUILD/python-csvkit-1.1.1-build + '[' /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-csvkit-1.1.1-build + mkdir /builddir/build/BUILD/python-csvkit-1.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 csvkit-1.1.1 + 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 ' + 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 ' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT --prefix /usr running install /usr/lib/python3.13/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. Follow the current Python packaging guidelines when building Python RPM packages. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html and https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ for details. ******************************************************************************** !! self.initialize_options() running install_lib creating /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr creating /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib creating /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13 creating /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages creating /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit copying build/lib/csvkit/__init__.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit copying build/lib/csvkit/cleanup.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit copying build/lib/csvkit/cli.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit copying build/lib/csvkit/exceptions.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit copying build/lib/csvkit/grep.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit creating /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert copying build/lib/csvkit/convert/__init__.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert copying build/lib/csvkit/convert/fixed.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert copying build/lib/csvkit/convert/geojs.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert creating /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/__init__.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvclean.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvcut.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvformat.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvgrep.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvjoin.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvjson.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvlook.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvpy.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvsort.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvsql.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvstack.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/csvstat.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/in2csv.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities copying build/lib/csvkit/utilities/sql2csv.py -> /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/__init__.py to __init__.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/cleanup.py to cleanup.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/cli.py to cli.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/exceptions.py to exceptions.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/grep.py to grep.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert/__init__.py to __init__.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert/fixed.py to fixed.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert/geojs.py to geojs.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__init__.py to __init__.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvclean.py to csvclean.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvcut.py to csvcut.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvformat.py to csvformat.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvgrep.py to csvgrep.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvjoin.py to csvjoin.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvjson.py to csvjson.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvlook.py to csvlook.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvpy.py to csvpy.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvsort.py to csvsort.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvsql.py to csvsql.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvstack.py to csvstack.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/csvstat.py to csvstat.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/in2csv.py to in2csv.cpython-313.pyc byte-compiling /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/sql2csv.py to sql2csv.cpython-313.pyc writing byte-compilation script '/tmp/tmpb4q3hjzv.py' /usr/bin/python3 /tmp/tmpb4q3hjzv.py removing /tmp/tmpb4q3hjzv.py running install_egg_info running egg_info creating csvkit.egg-info writing csvkit.egg-info/PKG-INFO writing dependency_links to csvkit.egg-info/dependency_links.txt writing entry points to csvkit.egg-info/entry_points.txt writing requirements to csvkit.egg-info/requires.txt writing top-level names to csvkit.egg-info/top_level.txt writing manifest file 'csvkit.egg-info/SOURCES.txt' reading manifest file 'csvkit.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'COPYING' adding license file 'AUTHORS.rst' writing manifest file 'csvkit.egg-info/SOURCES.txt' Copying csvkit.egg-info to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit-1.1.1-py3.13.egg-info running install_scripts Installing csvclean script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvcut script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvformat script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvgrep script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvjoin script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvjson script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvlook script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvpy script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvsort script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvsql script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvstack script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing csvstat script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing in2csv script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin Installing sql2csv script to /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin + rm -rfv /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/bin/__pycache__ + mkdir -p /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1 + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvclean.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvcut.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvformat.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvgrep.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvjoin.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvjson.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvlook.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvpy.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvsort.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvsql.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvstack.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/csvstat.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/in2csv.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + for file in docs/_build/man/*.1 + install -p -m0644 docs/_build/man/sql2csv.1 /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/share/man/man1/ + rm docs/_build/html/.buildinfo + chmod -x examples/realdata/census_2000/VROUTFSJ.TXt + /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-csvkit-1.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-csvkit-1.1.1-build/BUILDROOT /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert/__pycache__/fixed.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert/__pycache__/geojs.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/convert/__pycache__/__init__.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/__init__.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvgrep.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvclean.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvcut.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvjoin.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvpy.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvformat.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvsort.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvsql.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvjson.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvlook.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvjson.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvstack.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/csvstat.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/in2csv.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/__pycache__/__init__.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/utilities/__pycache__/sql2csv.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/__pycache__/cleanup.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/__pycache__/exceptions.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/__pycache__/cli.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-csvkit-1.1.1-build/BUILDROOT/usr/lib/python3.13/site-packages/csvkit/__pycache__/grep.cpython-313.pyc: rewriting with normalized contents Processed 24 paths Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.GybYVW + umask 022 + cd /builddir/build/BUILD/python-csvkit-1.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 csvkit-1.1.1 + pytest-3.13 tests -v -k 'not test_convert_dbf and not test_decimal_format' ============================= test session starts ============================== platform linux -- Python 3.13.0b2, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/python-csvkit-1.1.1-build/csvkit-1.1.1 collecting ... collected 283 items / 2 deselected / 281 selected tests/test_cleanup.py::TestCleanup::test_fix_rows PASSED [ 0%] tests/test_cleanup.py::TestCleanup::test_real_world_join_fail PASSED [ 0%] tests/test_cli.py::TestCli::test_match_column_identifier_numeric PASSED [ 1%] tests/test_cli.py::TestCli::test_match_column_identifier_string PASSED [ 1%] tests/test_cli.py::TestCli::test_match_column_which_could_be_integer_name_is_treated_as_positional_id PASSED [ 1%] tests/test_cli.py::TestCli::test_parse_column_identifiers PASSED [ 2%] tests/test_cli.py::TestCli::test_range_notation PASSED [ 2%] tests/test_cli.py::TestCli::test_range_notation_open_ended PASSED [ 2%] tests/test_convert/test_convert.py::TestConvert::test_guess_csv PASSED [ 3%] tests/test_convert/test_convert.py::TestConvert::test_guess_dbf PASSED [ 3%] tests/test_convert/test_convert.py::TestConvert::test_guess_fixed PASSED [ 3%] tests/test_convert/test_convert.py::TestConvert::test_guess_invalid PASSED [ 4%] tests/test_convert/test_convert.py::TestConvert::test_guess_json PASSED [ 4%] tests/test_convert/test_convert.py::TestConvert::test_guess_xls PASSED [ 4%] tests/test_convert/test_convert.py::TestConvert::test_guess_xls_uppercase PASSED [ 5%] tests/test_convert/test_convert.py::TestConvert::test_guess_xlsx PASSED [ 5%] tests/test_convert/test_fixed.py::TestFixed::test_fixed PASSED [ 6%] tests/test_convert/test_fixed.py::TestFixed::test_fixed_no_inference PASSED [ 6%] tests/test_convert/test_fixed.py::TestFixed::test_fixed_skip_lines PASSED [ 6%] tests/test_convert/test_fixed.py::TestFixed::test_fixed_streaming PASSED [ 7%] tests/test_convert/test_fixed.py::TestFixed::test_one_based_row_decoder PASSED [ 7%] tests/test_convert/test_fixed.py::TestFixed::test_schema_decoder_in_action PASSED [ 7%] tests/test_convert/test_fixed.py::TestFixed::test_schema_decoder_init PASSED [ 8%] tests/test_convert/test_fixed.py::TestFixed::test_schematic_line_parser PASSED [ 8%] tests/test_grep.py::TestGrep::test_any_match PASSED [ 8%] tests/test_grep.py::TestGrep::test_any_match_and_inverse PASSED [ 9%] tests/test_grep.py::TestGrep::test_column_names_in_patterns PASSED [ 9%] tests/test_grep.py::TestGrep::test_duplicate_column_ids_in_patterns PASSED [ 9%] tests/test_grep.py::TestGrep::test_index_out_of_range PASSED [ 10%] tests/test_grep.py::TestGrep::test_inverse PASSED [ 10%] tests/test_grep.py::TestGrep::test_mixed_indices_and_column_names_in_patterns PASSED [ 11%] tests/test_grep.py::TestGrep::test_multiline PASSED [ 11%] tests/test_grep.py::TestGrep::test_no_header PASSED [ 11%] tests/test_grep.py::TestGrep::test_pattern PASSED [ 12%] tests/test_grep.py::TestGrep::test_regex PASSED [ 12%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_changes_character_encoding PASSED [ 12%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_changes_line_endings PASSED [ 13%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_dry_run PASSED [ 13%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_empty PASSED [ 13%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_launch_new_instance PASSED [ 14%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_no_header_row PASSED [ 14%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_removes_bom PASSED [ 14%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_removes_optional_quote_characters PASSED [ 15%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_simple PASSED [ 15%] tests/test_utilities/test_csvclean.py::TestCSVClean::test_skip_lines PASSED [ 16%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_delete_empty PASSED [ 16%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_empty PASSED [ 16%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_exclude PASSED [ 17%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_include_and_exclude PASSED [ 17%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_invalid_column PASSED [ 17%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_invalid_options PASSED [ 18%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_launch_new_instance PASSED [ 18%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_linenumbers PASSED [ 18%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_names PASSED [ 19%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_names_with_skip_lines PASSED [ 19%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_no_header_row PASSED [ 19%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_ragged PASSED [ 20%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_simple PASSED [ 20%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_skip_lines PASSED [ 20%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_truncate PASSED [ 21%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_unicode PASSED [ 21%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_with_bzip2 PASSED [ 22%] tests/test_utilities/test_csvcut.py::TestCSVCut::test_with_gzip PASSED [ 22%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_delimiter PASSED [ 22%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_doublequote PASSED [ 23%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_empty PASSED [ 23%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_escapechar PASSED [ 23%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_launch_new_instance PASSED [ 24%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_linenumbers PASSED [ 24%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_lineterminator PASSED [ 24%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_no_header_row PASSED [ 25%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_quotechar PASSED [ 25%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_skip_lines PASSED [ 25%] tests/test_utilities/test_csvformat.py::TestCSVFormat::test_tab_delimiter PASSED [ 26%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_any_match PASSED [ 26%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_empty PASSED [ 27%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_invalid_column PASSED [ 27%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_invalid_options PASSED [ 27%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_invert_match PASSED [ 28%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_kwargs_with_line_numbers PASSED [ 28%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_launch_new_instance PASSED [ 28%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match PASSED [ 29%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match_utf8 PASSED [ 29%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match_utf8_bom PASSED [ 29%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match_with_line_numbers PASSED [ 30%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_names PASSED [ 30%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_no_match PASSED [ 30%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_re_match PASSED [ 31%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_re_match_utf8 PASSED [ 31%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_skip_lines PASSED [ 32%] tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_string_match PASSED [ 32%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_blanks PASSED [ 32%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_empty PASSED [ 33%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_inner PASSED [ 33%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_launch_new_instance PASSED [ 33%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_left PASSED [ 34%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_left_short_columns PASSED [ 34%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_blanks PASSED [ 34%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_header_row PASSED [ 35%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_inference PASSED [ 35%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_outer PASSED [ 35%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_right PASSED [ 36%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_sequential PASSED [ 36%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_single PASSED [ 37%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_sniff_limit_no_limit PASSED [ 37%] tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_sniff_limit_zero_limit PASSED [ 37%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_blanks PASSED [ 38%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_duplicate_keys PASSED [ 38%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_empty PASSED [ 38%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_point PASSED [ 39%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_shape PASSED [ 39%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_with_crs PASSED [ 39%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_with_id PASSED [ 40%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_with_no_bbox PASSED [ 40%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_indentation PASSED [ 40%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_keying PASSED [ 41%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_launch_new_instance PASSED [ 41%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndgeojson PASSED [ 41%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndgeojson_streaming PASSED [ 42%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndjson PASSED [ 42%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndjson_streaming PASSED [ 43%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_no_blanks PASSED [ 43%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_no_header_row PASSED [ 43%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_no_inference PASSED [ 44%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_simple PASSED [ 44%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_sniff_limit PASSED [ 44%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_tsv PASSED [ 45%] tests/test_utilities/test_csvjson.py::TestCSVJSON::test_tsv_streaming PASSED [ 45%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_blanks PASSED [ 45%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_empty PASSED [ 46%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_encoding PASSED [ 46%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_launch_new_instance PASSED [ 46%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_linenumbers PASSED [ 47%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_column_width PASSED [ 47%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_columns PASSED [ 48%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_rows PASSED [ 48%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_no_blanks PASSED [ 48%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_no_header_row PASSED [ 49%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_no_inference PASSED [ 49%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_runs PASSED [ 49%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_simple PASSED [ 50%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_sniff_limit_no_limit PASSED [ 50%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_sniff_limit_zero_limit PASSED [ 50%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_stdin FAILED [ 51%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_unicode PASSED [ 51%] tests/test_utilities/test_csvlook.py::TestCSVLook::test_unicode_bom PASSED [ 51%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_blanks PASSED [ 52%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_empty PASSED [ 52%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_encoding PASSED [ 53%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_invalid_column PASSED [ 53%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_invalid_options PASSED [ 53%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_launch_new_instance PASSED [ 54%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_names PASSED [ 54%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_no_blanks PASSED [ 54%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_no_header_row PASSED [ 55%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_no_inference PASSED [ 55%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_runs PASSED [ 55%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_sort_date PASSED [ 56%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_sort_string_reverse PASSED [ 56%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_sort_t_and_nulls PASSED [ 56%] tests/test_utilities/test_csvsort.py::TestCSVSort::test_stdin FAILED [ 57%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_before_after_insert FAILED [ 57%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_blanks PASSED [ 58%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_create_if_not_exists PASSED [ 58%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_create_table PASSED [ 58%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_empty PASSED [ 59%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_launch_new_instance PASSED [ 59%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_linenumbers PASSED [ 59%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_blanks PASSED [ 60%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_create_if_not_exists PASSED [ 60%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_header_row PASSED [ 60%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_inference PASSED [ 61%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_prefix_unique_constraint PASSED [ 61%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_prefix_unique_constraint PASSED [ 61%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query FAILED [ 62%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_empty FAILED [ 62%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_file FAILED [ 62%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_text FAILED [ 63%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_update FAILED [ 63%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_stdin FAILED [ 64%] tests/test_utilities/test_csvsql.py::TestCSVSQL::test_stdin_and_filename FAILED [ 64%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_empty PASSED [ 64%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_explicit_grouping PASSED [ 65%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_filenames_grouping PASSED [ 65%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_launch_new_instance PASSED [ 65%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack PASSED [ 66%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack_col PASSED [ 66%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack_col_ragged PASSED [ 66%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack_col_ragged_stdin PASSED [ 67%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_single_file_stack PASSED [ 67%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_skip_lines PASSED [ 67%] tests/test_utilities/test_csvstack.py::TestCSVStack::test_skip_lines_stdin PASSED [ 68%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_empty PASSED [ 68%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_explicit_grouping PASSED [ 69%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_filenames_grouping PASSED [ 69%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_grouped_filenames PASSED [ 69%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_grouped_filenames_and_named_column PASSED [ 70%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_grouped_manual_and_named_column PASSED [ 70%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_launch_new_instance PASSED [ 70%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack PASSED [ 71%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack_col PASSED [ 71%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack_col_ragged PASSED [ 71%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack_col_ragged_stdin PASSED [ 72%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_no_header_row_basic PASSED [ 72%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_no_header_row_basic_stdin PASSED [ 72%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_single_file_stack PASSED [ 73%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_skip_lines PASSED [ 73%] tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_skip_lines_stdin PASSED [ 74%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_columns PASSED [ 74%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_count_only PASSED [ 74%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_csv PASSED [ 75%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_csv_columns PASSED [ 75%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_empty PASSED [ 75%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_encoding PASSED [ 76%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_freq PASSED [ 76%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_freq_count PASSED [ 76%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_freq_list PASSED [ 77%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_invalid_column PASSED [ 77%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_invalid_options PASSED [ 77%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_launch_new_instance PASSED [ 78%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_linenumbers PASSED [ 78%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_max_length PASSED [ 79%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_names PASSED [ 79%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_no_header_row PASSED [ 79%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_runs PASSED [ 80%] tests/test_utilities/test_csvstat.py::TestCSVStat::test_unique PASSED [ 80%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_blanks PASSED [ 80%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_csv PASSED [ 81%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_csv_with_skip_lines PASSED [ 81%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_geojson PASSED [ 81%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_json PASSED [ 82%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_ndjson PASSED [ 82%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_nested_json PASSED [ 82%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_tsv PASSED [ 83%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_tsv_streaming PASSED [ 83%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls PASSED [ 83%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_sheet PASSED [ 84%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_skip_lines PASSED [ 84%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_unicode_sheet PASSED [ 85%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_write_sheets PASSED [ 85%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx PASSED [ 85%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_sheet PASSED [ 86%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_skip_lines PASSED [ 86%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_unicode_sheet PASSED [ 86%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_write_sheets PASSED [ 87%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_datetime_inference FAILED [ 87%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_no_headers PASSED [ 87%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_no_headers_streaming PASSED [ 88%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_no_inference PASSED [ 88%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_date_format PASSED [ 88%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_date_format_default PASSED [ 89%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_date_like_number PASSED [ 89%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_empty PASSED [ 90%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_geojson_no_inference PASSED [ 90%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_json_no_inference PASSED [ 90%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_launch_new_instance PASSED [ 91%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_locale PASSED [ 91%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_names PASSED [ 91%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_names_xls PASSED [ 92%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_names_xlsx PASSED [ 92%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_ndjson_no_inference PASSED [ 92%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_no_blanks PASSED [ 93%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_numeric_date_format PASSED [ 93%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_numeric_date_format_default PASSED [ 93%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_version PASSED [ 94%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_xls_no_inference PASSED [ 94%] tests/test_utilities/test_in2csv.py::TestIn2CSV::test_xlsx_no_inference PASSED [ 95%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_empty FAILED [ 95%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_encoding FAILED [ 95%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_file FAILED [ 96%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_file_with_query FAILED [ 96%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_launch_new_instance FAILED [ 96%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_linenumbers FAILED [ 97%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_no_header_row FAILED [ 97%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_query FAILED [ 97%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin FAILED [ 98%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_file FAILED [ 98%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_file_and_query FAILED [ 98%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_query FAILED [ 99%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_unicode FAILED [ 99%] tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_wildcard_on_sqlite FAILED [100%] =================================== FAILURES =================================== ____________________________ TestCSVLook.test_stdin ____________________________ self = def test_stdin(self): input_file = StringIO('a,b,c\n1,2,3\n4,5,6\n') with stdin_as_string(input_file): > self.assertLines([], [ '| a | b | c |', '| - | - | - |', '| 1 | 2 | 3 |', '| 4 | 5 | 6 |', ]) tests/test_utilities/test_csvlook.py:135: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:81: in assertLines lines = self.get_output_as_list(args) tests/utils.py:67: in get_output_as_list return self.get_output(args).split('\n') tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvlook.py:33: in main table = agate.Table.from_csv( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = path = <_io.StringIO object at 0x7f50879aa140>, column_names = None column_types = row_names = None, skip_lines = 0, header = True, sniff_limit = 1024 encoding = 'utf-8', row_limit = None kwargs = {'doublequote': True, 'line_numbers': False, 'skipinitialspace': False} csv = Table = , close = False f = <_io.StringIO object at 0x7f50879aa140> handle = <_io.StringIO object at 0x7f50879aa140> @classmethod def from_csv(cls, path, column_names=None, column_types=None, row_names=None, skip_lines=0, header=True, sniff_limit=0, encoding='utf-8', row_limit=None, **kwargs): """ Create a new table from a CSV. This method uses agate's builtin CSV reader, which supplies encoding support for both Python 2 and Python 3. :code:`kwargs` will be passed through to the CSV reader. :param path: Filepath or file-like object from which to read CSV data. If a file-like object is specified, it must be seekable. If using Python 2, the file should be opened in binary mode (`rb`). :param column_names: See :meth:`.Table.__init__`. :param column_types: See :meth:`.Table.__init__`. :param row_names: See :meth:`.Table.__init__`. :param skip_lines: The number of lines to skip from the top of the file. :param header: If :code:`True`, the first row of the CSV is assumed to contain column names. If :code:`header` and :code:`column_names` are both specified then a row will be skipped, but :code:`column_names` will be used. :param sniff_limit: Limit CSV dialect sniffing to the specified number of bytes. Set to None to sniff the entire file. Defaults to 0 (no sniffing). :param encoding: Character encoding of the CSV file. Note: if passing in a file handle it is assumed you have already opened it with the correct encoding specified. :param row_limit: Limit how many rows of data will be read. """ from agate import csv from agate.table import Table close = False try: if hasattr(path, 'read'): f = path else: f = open(path, encoding=encoding) close = True if isinstance(skip_lines, int): while skip_lines > 0: f.readline() skip_lines -= 1 else: raise ValueError('skip_lines argument must be an int') handle = f if sniff_limit is None: # Overwrite `handle` to not read the file a second time in `csv.reader`. handle = io.StringIO(f.read()) sample = handle.getvalue() elif sniff_limit > 0: if f == sys.stdin: # "At most one single read on the raw stream is done to satisfy the call. The number of bytes returned # may be less or more than requested." In other words, it reads the buffer_size, which might be less or # more than the sniff_limit. On my machine, the buffer_size of sys.stdin.buffer is the length of the # input, up to 65536. This assumes that users don't sniff more than 64 KiB. # https://docs.python.org/3/library/io.html#io.BufferedReader.peek > sample = f.buffer.peek(sniff_limit).decode(encoding, 'ignore')[:sniff_limit] # reads *bytes* E AttributeError: '_io.StringIO' object has no attribute 'buffer' /usr/lib/python3.13/site-packages/agate/table/from_csv.py:76: AttributeError ____________________________ TestCSVSort.test_stdin ____________________________ self = def test_stdin(self): input_file = StringIO('a,b,c\n4,5,6\n1,2,3\n') with stdin_as_string(input_file): > self.assertLines([], [ 'a,b,c', '1,2,3', '4,5,6', ]) tests/test_utilities/test_csvsort.py:86: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:81: in assertLines lines = self.get_output_as_list(args) tests/utils.py:67: in get_output_as_list return self.get_output(args).split('\n') tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsort.py:38: in main table = agate.Table.from_csv( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = path = <_io.StringIO object at 0x7f50879aa380>, column_names = None column_types = row_names = None, skip_lines = 0, header = True, sniff_limit = 1024 encoding = 'utf-8', row_limit = None kwargs = {'doublequote': True, 'skipinitialspace': False} csv = Table = , close = False f = <_io.StringIO object at 0x7f50879aa380> handle = <_io.StringIO object at 0x7f50879aa380> @classmethod def from_csv(cls, path, column_names=None, column_types=None, row_names=None, skip_lines=0, header=True, sniff_limit=0, encoding='utf-8', row_limit=None, **kwargs): """ Create a new table from a CSV. This method uses agate's builtin CSV reader, which supplies encoding support for both Python 2 and Python 3. :code:`kwargs` will be passed through to the CSV reader. :param path: Filepath or file-like object from which to read CSV data. If a file-like object is specified, it must be seekable. If using Python 2, the file should be opened in binary mode (`rb`). :param column_names: See :meth:`.Table.__init__`. :param column_types: See :meth:`.Table.__init__`. :param row_names: See :meth:`.Table.__init__`. :param skip_lines: The number of lines to skip from the top of the file. :param header: If :code:`True`, the first row of the CSV is assumed to contain column names. If :code:`header` and :code:`column_names` are both specified then a row will be skipped, but :code:`column_names` will be used. :param sniff_limit: Limit CSV dialect sniffing to the specified number of bytes. Set to None to sniff the entire file. Defaults to 0 (no sniffing). :param encoding: Character encoding of the CSV file. Note: if passing in a file handle it is assumed you have already opened it with the correct encoding specified. :param row_limit: Limit how many rows of data will be read. """ from agate import csv from agate.table import Table close = False try: if hasattr(path, 'read'): f = path else: f = open(path, encoding=encoding) close = True if isinstance(skip_lines, int): while skip_lines > 0: f.readline() skip_lines -= 1 else: raise ValueError('skip_lines argument must be an int') handle = f if sniff_limit is None: # Overwrite `handle` to not read the file a second time in `csv.reader`. handle = io.StringIO(f.read()) sample = handle.getvalue() elif sniff_limit > 0: if f == sys.stdin: # "At most one single read on the raw stream is done to satisfy the call. The number of bytes returned # may be less or more than requested." In other words, it reads the buffer_size, which might be less or # more than the sniff_limit. On my machine, the buffer_size of sys.stdin.buffer is the length of the # input, up to 65536. This assumes that users don't sniff more than 64 KiB. # https://docs.python.org/3/library/io.html#io.BufferedReader.peek > sample = f.buffer.peek(sniff_limit).decode(encoding, 'ignore')[:sniff_limit] # reads *bytes* E AttributeError: '_io.StringIO' object has no attribute 'buffer' /usr/lib/python3.13/site-packages/agate/table/from_csv.py:76: AttributeError _____________________ TestCSVSQL.test_before_after_insert ______________________ self = statement = 'SELECT 1', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_before_after_insert(self): > self.get_output(['--db', 'sqlite:///' + self.db_file, '--insert', 'examples/dummy.csv', '--before-insert', 'SELECT 1; CREATE TABLE foobar (date DATE)', '--after-insert', 'INSERT INTO dummy VALUES (0, 5, 6)']) tests/test_utilities/test_csvsql.py:188: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:189: in _failsafe_main self.connection.execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'SELECT 1', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'SELECT 1' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ____________________________ TestCSVSQL.test_query _____________________________ self = statement = 'SELECT m.usda_id, avg(i.sepal_length) AS mean_sepal_length FROM iris AS i JOIN irismeta AS m ON (i.species = m.species) GROUP BY m.species' parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_query(self): input_file = StringIO("a,b,c\n1,2,3\n") with stdin_as_string(input_file): > sql = self.get_output(['--query', 'SELECT m.usda_id, avg(i.sepal_length) AS mean_sepal_length FROM iris ' 'AS i JOIN irismeta AS m ON (i.species = m.species) GROUP BY m.species', 'examples/iris.csv', 'examples/irismeta.csv']) tests/test_utilities/test_csvsql.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:235: in _failsafe_main rows = self.connection.execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'SELECT m.usda_id, avg(i.sepal_length) AS mean_sepal_length FROM iris AS i JOIN irismeta AS m ON (i.species = m.species) GROUP BY m.species' parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'SELECT m.usda_id, avg(i.sepal_length) AS mean_sepal_length FROM iris AS i JOIN irismeta AS m ON (i.species = m.species) GROUP BY m.species' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError _________________________ TestCSVSQL.test_query_empty __________________________ self = def test_query_empty(self): input_file = StringIO() with stdin_as_string(input_file): > output = self.get_output(['--query', 'SELECT 1']) tests/test_utilities/test_csvsql.py:160: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:173: in _failsafe_main table = agate.Table.from_csv( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = path = <_io.StringIO object at 0x7f5087917880>, column_names = None column_types = row_names = None, skip_lines = 0, header = True, sniff_limit = 1024 encoding = 'utf-8', row_limit = None kwargs = {'doublequote': True, 'skipinitialspace': False} csv = Table = , close = False f = <_io.StringIO object at 0x7f5087917880> handle = <_io.StringIO object at 0x7f5087917880> @classmethod def from_csv(cls, path, column_names=None, column_types=None, row_names=None, skip_lines=0, header=True, sniff_limit=0, encoding='utf-8', row_limit=None, **kwargs): """ Create a new table from a CSV. This method uses agate's builtin CSV reader, which supplies encoding support for both Python 2 and Python 3. :code:`kwargs` will be passed through to the CSV reader. :param path: Filepath or file-like object from which to read CSV data. If a file-like object is specified, it must be seekable. If using Python 2, the file should be opened in binary mode (`rb`). :param column_names: See :meth:`.Table.__init__`. :param column_types: See :meth:`.Table.__init__`. :param row_names: See :meth:`.Table.__init__`. :param skip_lines: The number of lines to skip from the top of the file. :param header: If :code:`True`, the first row of the CSV is assumed to contain column names. If :code:`header` and :code:`column_names` are both specified then a row will be skipped, but :code:`column_names` will be used. :param sniff_limit: Limit CSV dialect sniffing to the specified number of bytes. Set to None to sniff the entire file. Defaults to 0 (no sniffing). :param encoding: Character encoding of the CSV file. Note: if passing in a file handle it is assumed you have already opened it with the correct encoding specified. :param row_limit: Limit how many rows of data will be read. """ from agate import csv from agate.table import Table close = False try: if hasattr(path, 'read'): f = path else: f = open(path, encoding=encoding) close = True if isinstance(skip_lines, int): while skip_lines > 0: f.readline() skip_lines -= 1 else: raise ValueError('skip_lines argument must be an int') handle = f if sniff_limit is None: # Overwrite `handle` to not read the file a second time in `csv.reader`. handle = io.StringIO(f.read()) sample = handle.getvalue() elif sniff_limit > 0: if f == sys.stdin: # "At most one single read on the raw stream is done to satisfy the call. The number of bytes returned # may be less or more than requested." In other words, it reads the buffer_size, which might be less or # more than the sniff_limit. On my machine, the buffer_size of sys.stdin.buffer is the length of the # input, up to 65536. This assumes that users don't sniff more than 64 KiB. # https://docs.python.org/3/library/io.html#io.BufferedReader.peek > sample = f.buffer.peek(sniff_limit).decode(encoding, 'ignore')[:sniff_limit] # reads *bytes* E AttributeError: '_io.StringIO' object has no attribute 'buffer' /usr/lib/python3.13/site-packages/agate/table/from_csv.py:76: AttributeError __________________________ TestCSVSQL.test_query_file __________________________ self = statement = 'select 4*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_query_file(self): > sql = self.get_output(['--query', 'examples/test_query.sql', 'examples/testfixed_converted.csv']) tests/test_utilities/test_csvsql.py:176: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:235: in _failsafe_main rows = self.connection.execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 4*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 4*9 as question' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError __________________________ TestCSVSQL.test_query_text __________________________ self = statement = 'SELECT text FROM testfixed_converted WHERE text LIKE "Chicago%"' parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_query_text(self): > sql = self.get_output(['--query', 'SELECT text FROM testfixed_converted WHERE text LIKE "Chicago%"', 'examples/testfixed_converted.csv']) tests/test_utilities/test_csvsql.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:235: in _failsafe_main rows = self.connection.execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'SELECT text FROM testfixed_converted WHERE text LIKE "Chicago%"' parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'SELECT text FROM testfixed_converted WHERE text LIKE "Chicago%"' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError _________________________ TestCSVSQL.test_query_update _________________________ self = statement = 'UPDATE dummy SET a=10 WHERE a=1', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_query_update(self): > sql = self.get_output(['--query', 'UPDATE dummy SET a=10 WHERE a=1', '--no-inference', 'examples/dummy.csv']) tests/test_utilities/test_csvsql.py:183: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:235: in _failsafe_main rows = self.connection.execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'UPDATE dummy SET a=10 WHERE a=1', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'UPDATE dummy SET a=10 WHERE a=1' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ____________________________ TestCSVSQL.test_stdin _____________________________ self = def test_stdin(self): input_file = StringIO('a,b,c\n4,2,3\n') with stdin_as_string(input_file): > sql = self.get_output(['--tables', 'foo']) tests/test_utilities/test_csvsql.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:173: in _failsafe_main table = agate.Table.from_csv( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = path = <_io.StringIO object at 0x7f50877ee5c0>, column_names = None column_types = row_names = None, skip_lines = 0, header = True, sniff_limit = 1024 encoding = 'utf-8', row_limit = None kwargs = {'doublequote': True, 'skipinitialspace': False} csv = Table = , close = False f = <_io.StringIO object at 0x7f50877ee5c0> handle = <_io.StringIO object at 0x7f50877ee5c0> @classmethod def from_csv(cls, path, column_names=None, column_types=None, row_names=None, skip_lines=0, header=True, sniff_limit=0, encoding='utf-8', row_limit=None, **kwargs): """ Create a new table from a CSV. This method uses agate's builtin CSV reader, which supplies encoding support for both Python 2 and Python 3. :code:`kwargs` will be passed through to the CSV reader. :param path: Filepath or file-like object from which to read CSV data. If a file-like object is specified, it must be seekable. If using Python 2, the file should be opened in binary mode (`rb`). :param column_names: See :meth:`.Table.__init__`. :param column_types: See :meth:`.Table.__init__`. :param row_names: See :meth:`.Table.__init__`. :param skip_lines: The number of lines to skip from the top of the file. :param header: If :code:`True`, the first row of the CSV is assumed to contain column names. If :code:`header` and :code:`column_names` are both specified then a row will be skipped, but :code:`column_names` will be used. :param sniff_limit: Limit CSV dialect sniffing to the specified number of bytes. Set to None to sniff the entire file. Defaults to 0 (no sniffing). :param encoding: Character encoding of the CSV file. Note: if passing in a file handle it is assumed you have already opened it with the correct encoding specified. :param row_limit: Limit how many rows of data will be read. """ from agate import csv from agate.table import Table close = False try: if hasattr(path, 'read'): f = path else: f = open(path, encoding=encoding) close = True if isinstance(skip_lines, int): while skip_lines > 0: f.readline() skip_lines -= 1 else: raise ValueError('skip_lines argument must be an int') handle = f if sniff_limit is None: # Overwrite `handle` to not read the file a second time in `csv.reader`. handle = io.StringIO(f.read()) sample = handle.getvalue() elif sniff_limit > 0: if f == sys.stdin: # "At most one single read on the raw stream is done to satisfy the call. The number of bytes returned # may be less or more than requested." In other words, it reads the buffer_size, which might be less or # more than the sniff_limit. On my machine, the buffer_size of sys.stdin.buffer is the length of the # input, up to 65536. This assumes that users don't sniff more than 64 KiB. # https://docs.python.org/3/library/io.html#io.BufferedReader.peek > sample = f.buffer.peek(sniff_limit).decode(encoding, 'ignore')[:sniff_limit] # reads *bytes* E AttributeError: '_io.StringIO' object has no attribute 'buffer' /usr/lib/python3.13/site-packages/agate/table/from_csv.py:76: AttributeError ______________________ TestCSVSQL.test_stdin_and_filename ______________________ self = def test_stdin_and_filename(self): input_file = StringIO("a,b,c\n1,2,3\n") with stdin_as_string(input_file): > sql = self.get_output(['-', 'examples/dummy.csv']) tests/test_utilities/test_csvsql.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/csvsql.py:142: in main self._failsafe_main() csvkit/utilities/csvsql.py:173: in _failsafe_main table = agate.Table.from_csv( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = path = <_io.StringIO object at 0x7f50877eee00>, column_names = None column_types = row_names = None, skip_lines = 0, header = True, sniff_limit = 1024 encoding = 'utf-8', row_limit = None kwargs = {'doublequote': True, 'skipinitialspace': False} csv = Table = , close = False f = <_io.StringIO object at 0x7f50877eee00> handle = <_io.StringIO object at 0x7f50877eee00> @classmethod def from_csv(cls, path, column_names=None, column_types=None, row_names=None, skip_lines=0, header=True, sniff_limit=0, encoding='utf-8', row_limit=None, **kwargs): """ Create a new table from a CSV. This method uses agate's builtin CSV reader, which supplies encoding support for both Python 2 and Python 3. :code:`kwargs` will be passed through to the CSV reader. :param path: Filepath or file-like object from which to read CSV data. If a file-like object is specified, it must be seekable. If using Python 2, the file should be opened in binary mode (`rb`). :param column_names: See :meth:`.Table.__init__`. :param column_types: See :meth:`.Table.__init__`. :param row_names: See :meth:`.Table.__init__`. :param skip_lines: The number of lines to skip from the top of the file. :param header: If :code:`True`, the first row of the CSV is assumed to contain column names. If :code:`header` and :code:`column_names` are both specified then a row will be skipped, but :code:`column_names` will be used. :param sniff_limit: Limit CSV dialect sniffing to the specified number of bytes. Set to None to sniff the entire file. Defaults to 0 (no sniffing). :param encoding: Character encoding of the CSV file. Note: if passing in a file handle it is assumed you have already opened it with the correct encoding specified. :param row_limit: Limit how many rows of data will be read. """ from agate import csv from agate.table import Table close = False try: if hasattr(path, 'read'): f = path else: f = open(path, encoding=encoding) close = True if isinstance(skip_lines, int): while skip_lines > 0: f.readline() skip_lines -= 1 else: raise ValueError('skip_lines argument must be an int') handle = f if sniff_limit is None: # Overwrite `handle` to not read the file a second time in `csv.reader`. handle = io.StringIO(f.read()) sample = handle.getvalue() elif sniff_limit > 0: if f == sys.stdin: # "At most one single read on the raw stream is done to satisfy the call. The number of bytes returned # may be less or more than requested." In other words, it reads the buffer_size, which might be less or # more than the sniff_limit. On my machine, the buffer_size of sys.stdin.buffer is the length of the # input, up to 65536. This assumes that users don't sniff more than 64 KiB. # https://docs.python.org/3/library/io.html#io.BufferedReader.peek > sample = f.buffer.peek(sniff_limit).decode(encoding, 'ignore')[:sniff_limit] # reads *bytes* E AttributeError: '_io.StringIO' object has no attribute 'buffer' /usr/lib/python3.13/site-packages/agate/table/from_csv.py:76: AttributeError ____________________ TestIn2CSV.test_csv_datetime_inference ____________________ self = def test_csv_datetime_inference(self): input_file = StringIO('a\n2015-01-01T00:00:00Z') with stdin_as_string(input_file): > self.assertLines(['-f', 'csv'], [ 'a', '2015-01-01T00:00:00+00:00', ]) tests/test_utilities/test_in2csv.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:81: in assertLines lines = self.get_output_as_list(args) tests/utils.py:67: in get_output_as_list return self.get_output(args).split('\n') tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/in2csv.py:145: in main table = agate.Table.from_csv(self.input_file, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = path = <_io.StringIO object at 0x7f50876859c0>, column_names = None column_types = row_names = None, skip_lines = 0, header = True, sniff_limit = 1024 encoding = 'utf-8', row_limit = None kwargs = {'doublequote': True, 'skipinitialspace': False} csv = Table = , close = False f = <_io.StringIO object at 0x7f50876859c0> handle = <_io.StringIO object at 0x7f50876859c0> @classmethod def from_csv(cls, path, column_names=None, column_types=None, row_names=None, skip_lines=0, header=True, sniff_limit=0, encoding='utf-8', row_limit=None, **kwargs): """ Create a new table from a CSV. This method uses agate's builtin CSV reader, which supplies encoding support for both Python 2 and Python 3. :code:`kwargs` will be passed through to the CSV reader. :param path: Filepath or file-like object from which to read CSV data. If a file-like object is specified, it must be seekable. If using Python 2, the file should be opened in binary mode (`rb`). :param column_names: See :meth:`.Table.__init__`. :param column_types: See :meth:`.Table.__init__`. :param row_names: See :meth:`.Table.__init__`. :param skip_lines: The number of lines to skip from the top of the file. :param header: If :code:`True`, the first row of the CSV is assumed to contain column names. If :code:`header` and :code:`column_names` are both specified then a row will be skipped, but :code:`column_names` will be used. :param sniff_limit: Limit CSV dialect sniffing to the specified number of bytes. Set to None to sniff the entire file. Defaults to 0 (no sniffing). :param encoding: Character encoding of the CSV file. Note: if passing in a file handle it is assumed you have already opened it with the correct encoding specified. :param row_limit: Limit how many rows of data will be read. """ from agate import csv from agate.table import Table close = False try: if hasattr(path, 'read'): f = path else: f = open(path, encoding=encoding) close = True if isinstance(skip_lines, int): while skip_lines > 0: f.readline() skip_lines -= 1 else: raise ValueError('skip_lines argument must be an int') handle = f if sniff_limit is None: # Overwrite `handle` to not read the file a second time in `csv.reader`. handle = io.StringIO(f.read()) sample = handle.getvalue() elif sniff_limit > 0: if f == sys.stdin: # "At most one single read on the raw stream is done to satisfy the call. The number of bytes returned # may be less or more than requested." In other words, it reads the buffer_size, which might be less or # more than the sniff_limit. On my machine, the buffer_size of sys.stdin.buffer is the length of the # input, up to 65536. This assumes that users don't sniff more than 64 KiB. # https://docs.python.org/3/library/io.html#io.BufferedReader.peek > sample = f.buffer.peek(sniff_limit).decode(encoding, 'ignore')[:sniff_limit] # reads *bytes* E AttributeError: '_io.StringIO' object has no attribute 'buffer' /usr/lib/python3.13/site-packages/agate/table/from_csv.py:76: AttributeError ____________________________ TestSQL2CSV.test_empty ____________________________ self = statement = '\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_empty(self): with open('examples/empty.csv') as f: with stdin_as_string(f): utility = self.Utility(getattr(self, 'default_args', [])) > utility.run() tests/utils.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = '\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: '\n' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError __________________________ TestSQL2CSV.test_encoding ___________________________ self = statement = 'select 4*9 as question\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_encoding(self): # Test that csvstat doesn't error on Latin-1 input. > self.get_output(['-e', 'latin1', 'examples/test.sql']) tests/test_utilities/test_sql2csv.py:55: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 4*9 as question\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 4*9 as question\n' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ____________________________ TestSQL2CSV.test_file _____________________________ self = statement = 'select 4*9 as question\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_file(self): > csv = self.get_output(['examples/test.sql']) tests/test_utilities/test_sql2csv.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 4*9 as question\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 4*9 as question\n' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError _______________________ TestSQL2CSV.test_file_with_query _______________________ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_file_with_query(self): > csv = self.get_output(['examples/test.sql', '--query', 'select 6*9 as question']) tests/test_utilities/test_sql2csv.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 6*9 as question' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError _____________________ TestSQL2CSV.test_launch_new_instance _____________________ self = statement = 'select 1', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_launch_new_instance(self): with patch.object(sys, 'argv', [self.Utility.__name__.lower(), '--query', 'select 1']): > launch_new_instance() tests/test_utilities/test_sql2csv.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ csvkit/utilities/sql2csv.py:86: in launch_new_instance utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 1', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 1' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError _________________________ TestSQL2CSV.test_linenumbers _________________________ self = statement = 'select * from foo', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_linenumbers(self): self.csvsql('examples/dummy.csv') > csv = self.get_output(['--db', 'sqlite:///' + self.db_file, '--linenumbers', '--query', 'select * from foo']) tests/test_utilities/test_sql2csv.py:133: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select * from foo', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select * from foo' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ________________________ TestSQL2CSV.test_no_header_row ________________________ self = statement = 'select * from foo', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_no_header_row(self): self.csvsql('examples/dummy.csv') > csv = self.get_output(['--db', 'sqlite:///' + self.db_file, '--no-header-row', '--query', 'select * from foo']) tests/test_utilities/test_sql2csv.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select * from foo', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select * from foo' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ____________________________ TestSQL2CSV.test_query ____________________________ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_query(self): > csv = self.get_output(['--query', 'select 6*9 as question']) tests/test_utilities/test_sql2csv.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 6*9 as question' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ____________________________ TestSQL2CSV.test_stdin ____________________________ self = statement = 'select cast(3.1415 * 13.37 as integer) as answer' parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_stdin(self): input_file = StringIO('select cast(3.1415 * 13.37 as integer) as answer') with stdin_as_string(input_file): > csv = self.get_output([]) tests/test_utilities/test_sql2csv.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select cast(3.1415 * 13.37 as integer) as answer' parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select cast(3.1415 * 13.37 as integer) as answer' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError _______________________ TestSQL2CSV.test_stdin_with_file _______________________ self = statement = 'select 4*9 as question\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_stdin_with_file(self): input_file = StringIO('select cast(3.1415 * 13.37 as integer) as answer') with stdin_as_string(input_file): > csv = self.get_output(['examples/test.sql']) tests/test_utilities/test_sql2csv.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 4*9 as question\n', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 4*9 as question\n' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError __________________ TestSQL2CSV.test_stdin_with_file_and_query __________________ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_stdin_with_file_and_query(self): input_file = StringIO('select cast(3.1415 * 13.37 as integer) as answer') with stdin_as_string(input_file): > csv = self.get_output(['examples/test.sql', '--query', 'select 6*9 as question']) tests/test_utilities/test_sql2csv.py:112: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 6*9 as question' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ______________________ TestSQL2CSV.test_stdin_with_query _______________________ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_stdin_with_query(self): input_file = StringIO('select cast(3.1415 * 13.37 as integer) as answer') with stdin_as_string(input_file): > csv = self.get_output(['--query', 'select 6*9 as question']) tests/test_utilities/test_sql2csv.py:90: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select 6*9 as question', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 6*9 as question' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError ___________________________ TestSQL2CSV.test_unicode ___________________________ self = statement = 'select * from foo', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_unicode(self): expected = self.csvsql('examples/test_utf8.csv') > csv = self.get_output(['--db', 'sqlite:///' + self.db_file, '--query', 'select * from foo']) tests/test_utilities/test_sql2csv.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = 'select * from foo', parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select * from foo' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError _____________________ TestSQL2CSV.test_wildcard_on_sqlite ______________________ self = statement = "select * from foo where species LIKE '%'", parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: > meth = statement._execute_on_connection E AttributeError: 'str' object has no attribute '_execute_on_connection' /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1414: AttributeError The above exception was the direct cause of the following exception: self = def test_wildcard_on_sqlite(self): self.csvsql('examples/iris.csv') > csv = self.get_output(['--db', 'sqlite:///' + self.db_file, '--query', "select * from foo where species LIKE '%'"]) tests/test_utilities/test_sql2csv.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:56: in get_output utility.run() csvkit/cli.py:116: in run self.main() csvkit/utilities/sql2csv.py:71: in main rows = connection.execution_options(no_parameters=True).execute(query) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = statement = "select * from foo where species LIKE '%'", parameters = None def execute( self, statement: Executable, parameters: Optional[_CoreAnyExecuteParams] = None, *, execution_options: Optional[CoreExecuteOptionsParameter] = None, ) -> CursorResult[Any]: r"""Executes a SQL statement construct and returns a :class:`_engine.CursorResult`. :param statement: The statement to be executed. This is always an object that is in both the :class:`_expression.ClauseElement` and :class:`_expression.Executable` hierarchies, including: * :class:`_expression.Select` * :class:`_expression.Insert`, :class:`_expression.Update`, :class:`_expression.Delete` * :class:`_expression.TextClause` and :class:`_expression.TextualSelect` * :class:`_schema.DDL` and objects which inherit from :class:`_schema.ExecutableDDLElement` :param parameters: parameters which will be bound into the statement. This may be either a dictionary of parameter names to values, or a mutable sequence (e.g. a list) of dictionaries. When a list of dictionaries is passed, the underlying statement execution will make use of the DBAPI ``cursor.executemany()`` method. When a single dictionary is passed, the DBAPI ``cursor.execute()`` method will be used. :param execution_options: optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by :meth:`_engine.Connection.execution_options`. :return: a :class:`_engine.Result` object. """ distilled_parameters = _distill_params_20(parameters) try: meth = statement._execute_on_connection except AttributeError as err: > raise exc.ObjectNotExecutableError(statement) from err E sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: "select * from foo where species LIKE '%'" /usr/lib64/python3.13/site-packages/sqlalchemy/engine/base.py:1416: ObjectNotExecutableError =============================== warnings summary =============================== csvkit/utilities/csvsql.py:7 /builddir/build/BUILD/python-csvkit-1.1.1-build/csvkit-1.1.1/csvkit/utilities/csvsql.py:7: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html from pkg_resources import iter_entry_points tests/test_utilities/test_csvjoin.py: 2 warnings tests/test_utilities/test_csvjson.py: 1 warning tests/test_utilities/test_csvlook.py: 1 warning tests/test_utilities/test_csvsort.py: 1 warning tests/test_utilities/test_csvsql.py: 1 warning tests/test_utilities/test_csvstat.py: 1 warning tests/test_utilities/test_in2csv.py: 6 warnings /usr/lib/python3.13/site-packages/agate/table/from_csv.py:83: RuntimeWarning: Error sniffing CSV dialect: Could not determine delimiter kwargs['dialect'] = csv.Sniffer().sniff(sample) tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_inference /usr/lib/python3.13/site-packages/agate/utils.py:288: DuplicateColumnWarning: Column name "b2" already exists in Table. Column will be renamed to "b2_2". warn_duplicate_column(new_value, final_value) tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_inference /usr/lib/python3.13/site-packages/agate/utils.py:288: DuplicateColumnWarning: Column name "c2" already exists in Table. Column will be renamed to "c2_2". warn_duplicate_column(new_value, final_value) tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_sheet tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_skip_lines tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_write_sheets tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_sheet tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_skip_lines tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_write_sheets /usr/lib/python3.13/site-packages/agate/utils.py:272: UnnamedColumnWarning: Column 7 has no name. Using "h". warn_unnamed_column(i, new_value) tests/test_utilities/test_in2csv.py: 18 warnings /usr/lib/python3.13/site-packages/openpyxl/packaging/core.py:99: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.datetime.utcnow() tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx /usr/lib/python3.13/site-packages/openpyxl/worksheet/_reader.py:329: UserWarning: Unknown extension is not supported and will be removed warn(msg) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_utilities/test_csvlook.py::TestCSVLook::test_stdin - Attrib... FAILED tests/test_utilities/test_csvsort.py::TestCSVSort::test_stdin - Attrib... FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_before_after_insert FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query - sqlalche... FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_empty - At... FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_file - sql... FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_text - sql... FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_update - s... FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_stdin - Attribut... FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_stdin_and_filename FAILED tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_datetime_inference FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_empty - sqlalc... FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_encoding - sql... FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_file - sqlalch... FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_file_with_query FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_launch_new_instance FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_linenumbers - ... FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_no_header_row FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_query - sqlalc... FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin - sqlalc... FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_file FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_file_and_query FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_query FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_unicode - sqla... FAILED tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_wildcard_on_sqlite ========== 25 failed, 256 passed, 2 deselected, 43 warnings in 8.40s =========== RPM build errors: error: Bad exit status from /var/tmp/rpm-tmp.GybYVW (%check) Bad exit status from /var/tmp/rpm-tmp.GybYVW (%check) Finish: rpmbuild python-csvkit-1.1.1-6.fc41.src.rpm Finish: build phase for python-csvkit-1.1.1-6.fc41.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1718973529.470161/root/var/log/dnf5.log ERROR: Exception(/var/lib/copr-rpmbuild/results/python-csvkit-1.1.1-6.fc41.src.rpm) Config(fedora-rawhide-x86_64) 0 minutes 21 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_failure=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot ERROR: Command failed: # /usr/bin/systemd-nspawn -q -M 006ba4069aa9437091c55c02000047d7 -D /var/lib/mock/fedora-rawhide-x86_64-1718973529.470161/root -a -u mockbuild --capability=cap_ipc_lock --rlimit=RLIMIT_NOFILE=10240 --capability=cap_ipc_lock --bind=/tmp/mock-resolv.mdkqjvsv:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin '--setenv=PROMPT_COMMAND=printf "\033]0;\007"' '--setenv=PS1= \s-\v\$ ' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/originals/python-csvkit.spec' Copr build error: Build failed