Mon Apr 29 14:10:43 UTC 2024 I: starting to build python-dsv/trixie/arm64 on jenkins on '2024-04-29 14:10' Mon Apr 29 14:10:43 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/arm64_2/33062/console.log Mon Apr 29 14:10:43 UTC 2024 I: Downloading source for trixie/python-dsv=1.4.1-12 --2024-04-29 14:10:43-- http://deb.debian.org/debian/pool/main/p/python-dsv/python-dsv_1.4.1-12.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2025 (2.0K) [text/prs.lines.tag] Saving to: ‘python-dsv_1.4.1-12.dsc’ 0K . 100% 280M=0s 2024-04-29 14:10:43 (280 MB/s) - ‘python-dsv_1.4.1-12.dsc’ saved [2025/2025] Mon Apr 29 14:10:43 UTC 2024 I: python-dsv_1.4.1-12.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: python-dsv Binary: python3-dsv Architecture: all Version: 1.4.1-12 Maintainer: Debian Python Team Uploaders: Aaron M. Ucko Homepage: https://python-dsv.sourceforge.net/ Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/python-team/packages/python-dsv Vcs-Git: https://salsa.debian.org/python-team/packages/python-dsv.git Testsuite: autopkgtest-pkg-python Build-Depends: 2to3, debhelper-compat (= 13), dh-python, python3-all, python3-setuptools Package-List: python3-dsv deb python optional arch=all Checksums-Sha1: 4cfdb824c5f66a8488f3fc8e441d54f23e0405f1 14682 python-dsv_1.4.1.orig.tar.gz ba358d0d3db3a4376635adc59839f4862c4990ca 10416 python-dsv_1.4.1-12.debian.tar.xz Checksums-Sha256: 5d0ec99c45f8ea91ea920dcd2cdf2cdc9e721985551ea80718519ce70dc98f15 14682 python-dsv_1.4.1.orig.tar.gz 7b4e5568c09c981262868570a5af928f51ddf66d2b97b369e1ddcce8a48637e5 10416 python-dsv_1.4.1-12.debian.tar.xz Files: f666d6956292f8be3fce0cccd21e6ab0 14682 python-dsv_1.4.1.orig.tar.gz c46eab9bfc217e21f939fe5508bd12df 10416 python-dsv_1.4.1-12.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEsjhixBXWVlpOhsvXV5wWDUyeI+gFAmOaIzkACgkQV5wWDUye I+i4TA/+PFFSiu7SDtVjJQuf0daAnxOZYZj6xkmi3Mx9wwbsGcEUdkA20hrkqODn TgY0FN+WtNvyzArO5/752fHHoQlL0q3HrZ+V3++xJbB7bWWLjcE7bNEt03ddk9td 4ZQmRwuDKNulT+xZNCIwoZJxHre5BH2xSAfKIMdCPam9efDxohsRuqCA7tXBcy66 ODuRUYTiZvjZ7QEgQmLQKhg0KQ40WSlORNaPem/9oUpgOHkxjpnBqDCFOvYSb2Kw avk9UOjI8PRDFklc+kp6shqLWvogEIEV6yarjdl5FayfZnOnFoW756vGy1Q70qwv BBdVqNuX1cAhOVV+/NnLxdoHvKVt7fZBrerj5LPm9q9Akmg3VMXK9o12y6kSJO3u TIw2GmgIGV8j+jLxvu9NvKkAEpTgxVbfReQycHwgTpgeoL5Wa6BgZvzl5SsIsq6U nmZIqJTNmvFWm5f/Bi1vum3R3ae+W0Ke+SR0PdQh4SDTmQBFtWx/Zsm09QaGLPU/ 4zj5TIAaQ5pmPGfrQCoOFS3SCJWBtDiKzQyUIaWbZDbInOsD7COXg721pMp9CD+4 W+rhFiqXeK50bUQjYihjMv+Vi566w5eueS0j/LIcEIecH2c2xzkv1fw7ztQSkNk0 eL8byEIfAP8+MbMFEiXUUnr93iQWnT7Zsiul9cmDejohMulpFL0= =GrS+ -----END PGP SIGNATURE----- Mon Apr 29 14:10:43 UTC 2024 I: Checking whether the package is not for us Mon Apr 29 14:10:43 UTC 2024 I: Starting 1st build on remote node codethink01-arm64.debian.net. Mon Apr 29 14:10:43 UTC 2024 I: Preparing to do remote build '1' on codethink01-arm64.debian.net. Mon Apr 29 14:11:24 UTC 2024 I: Deleting $TMPDIR on codethink01-arm64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Sun Jun 1 08:33:45 -12 2025 I: pbuilder-time-stamp: 1748810025 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [python-dsv_1.4.1-12.dsc] I: copying [./python-dsv_1.4.1.orig.tar.gz] I: copying [./python-dsv_1.4.1-12.debian.tar.xz] I: Extracting source gpgv: Signature made Wed Dec 14 19:25:45 2022 gpgv: using RSA key B23862C415D6565A4E86CBD7579C160D4C9E23E8 gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./python-dsv_1.4.1-12.dsc: no acceptable signature found dpkg-source: info: extracting python-dsv in python-dsv-1.4.1 dpkg-source: info: unpacking python-dsv_1.4.1.orig.tar.gz dpkg-source: info: unpacking python-dsv_1.4.1-12.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 01-leave-env-alone.patch dpkg-source: info: applying 02-wx-namespace-transition.patch dpkg-source: info: applying 03-avoid-unicoditis.patch dpkg-source: info: applying 04-wx3.0-compat.patch dpkg-source: info: applying 05-no-import-exceptions.patch I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/3706164/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='arm64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' DISTRIBUTION='trixie' HOME='/root' HOST_ARCH='arm64' IFS=' ' INVOCATION_ID='ccc7ef86f6984aa0a093358296f1768f' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='3706164' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.mFRccFCF/pbuilderrc_fQ7F --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.mFRccFCF/b1 --logfile b1/build.log python-dsv_1.4.1-12.dsc' SUDO_GID='109' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://192.168.101.4:3128' I: uname -a Linux codethink01-arm64 6.1.0-20-cloud-arm64 #1 SMP Debian 6.1.85-1 (2024-04-11) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 May 26 17:47 /bin -> usr/bin I: user script /srv/workspace/pbuilder/3706164/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: arm64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: 2to3, debhelper-compat (= 13), dh-python, python3-all, python3-setuptools dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19941 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on 2to3; however: Package 2to3 is not installed. pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1t64{a} libfile-stripnondeterminism-perl{a} libicu72{a} libmagic-mgc{a} libmagic1{a} libpipeline1{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} po-debconf{a} sensible-utils{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx wget 0 packages upgraded, 30 newly installed, 0 to remove and 0 not upgraded. Need to get 18.6 MB of archives. After unpacking 75.9 MB will be used. The following packages have unmet dependencies: pbuilder-satisfydepends-dummy : Depends: 2to3 but it is not installable Depends: dh-python but it is not installable Depends: python3-all but it is not installable Depends: python3-setuptools but it is not installable The following actions will resolve these dependencies: Remove the following packages: 1) libdb5.3 [5.3.28+dfsg2-4+b1 (now)] 2) libssl3 [3.1.5-1 (now)] Install the following packages: 3) 2to3 [3.11.8-1 (testing)] 4) dh-python [6.20240422 (testing)] 5) libdb5.3t64 [5.3.28+dfsg2-7 (testing)] 6) libexpat1 [2.6.2-1 (testing)] 7) libpython3-stdlib [3.11.8-1 (testing)] 8) libpython3.11-minimal [3.11.9-1 (testing)] 9) libpython3.11-stdlib [3.11.9-1 (testing)] 10) libpython3.12-minimal [3.12.3-1 (testing)] 11) libpython3.12-stdlib [3.12.3-1 (testing)] 12) libreadline8t64 [8.2-4 (testing)] 13) libssl3t64 [3.2.1-3 (testing)] 14) media-types [10.1.0 (testing)] 15) netbase [6.4 (testing)] 16) python3 [3.11.8-1 (testing)] 17) python3-all [3.11.8-1 (testing)] 18) python3-distutils [3.12.3-1 (testing)] 19) python3-lib2to3 [3.12.3-1 (testing)] 20) python3-minimal [3.11.8-1 (testing)] 21) python3-pkg-resources [68.1.2-2 (testing)] 22) python3-setuptools [68.1.2-2 (testing)] 23) python3.11 [3.11.9-1 (testing)] 24) python3.11-minimal [3.11.9-1 (testing)] 25) python3.12 [3.12.3-1 (testing)] 26) python3.12-minimal [3.12.3-1 (testing)] 27) readline-common [8.2-4 (testing)] 28) tzdata [2024a-3 (testing)] The following NEW packages will be installed: 2to3{a} autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdb5.3t64{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libicu72{a} libmagic-mgc{a} libmagic1{a} libpipeline1{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libreadline8t64{a} libssl3t64{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} po-debconf{a} python3{a} python3-all{a} python3-distutils{a} python3-lib2to3{a} python3-minimal{a} python3-pkg-resources{a} python3-setuptools{a} python3.11{a} python3.11-minimal{a} python3.12{a} python3.12-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} The following packages will be REMOVED: libdb5.3{a} libssl3{a} The following packages are RECOMMENDED but will NOT be installed: ca-certificates curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx wget 0 packages upgraded, 56 newly installed, 2 to remove and 0 not upgraded. Need to get 33.8 MB of archives. After unpacking 132 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main arm64 libdb5.3t64 arm64 5.3.28+dfsg2-7 [625 kB] Get: 2 http://deb.debian.org/debian trixie/main arm64 libssl3t64 arm64 3.2.1-3 [2537 kB] Get: 3 http://deb.debian.org/debian trixie/main arm64 libpython3.11-minimal arm64 3.11.9-1 [813 kB] Get: 4 http://deb.debian.org/debian trixie/main arm64 libexpat1 arm64 2.6.2-1 [88.7 kB] Get: 5 http://deb.debian.org/debian trixie/main arm64 python3.11-minimal arm64 3.11.9-1 [1767 kB] Get: 6 http://deb.debian.org/debian trixie/main arm64 python3-minimal arm64 3.11.8-1 [26.3 kB] Get: 7 http://deb.debian.org/debian trixie/main arm64 media-types all 10.1.0 [26.9 kB] Get: 8 http://deb.debian.org/debian trixie/main arm64 netbase all 6.4 [12.8 kB] Get: 9 http://deb.debian.org/debian trixie/main arm64 tzdata all 2024a-3 [255 kB] Get: 10 http://deb.debian.org/debian trixie/main arm64 readline-common all 8.2-4 [69.3 kB] Get: 11 http://deb.debian.org/debian trixie/main arm64 libreadline8t64 arm64 8.2-4 [157 kB] Get: 12 http://deb.debian.org/debian trixie/main arm64 libpython3.11-stdlib arm64 3.11.9-1 [1775 kB] Get: 13 http://deb.debian.org/debian trixie/main arm64 python3.11 arm64 3.11.9-1 [602 kB] Get: 14 http://deb.debian.org/debian trixie/main arm64 libpython3-stdlib arm64 3.11.8-1 [9332 B] Get: 15 http://deb.debian.org/debian trixie/main arm64 python3 arm64 3.11.8-1 [27.4 kB] Get: 16 http://deb.debian.org/debian trixie/main arm64 libpython3.12-minimal arm64 3.12.3-1 [802 kB] Get: 17 http://deb.debian.org/debian trixie/main arm64 python3.12-minimal arm64 3.12.3-1 [1931 kB] Get: 18 http://deb.debian.org/debian trixie/main arm64 sensible-utils all 0.0.22 [22.4 kB] Get: 19 http://deb.debian.org/debian trixie/main arm64 libmagic-mgc arm64 1:5.45-2+b1 [314 kB] Get: 20 http://deb.debian.org/debian trixie/main arm64 libmagic1 arm64 1:5.45-2+b1 [100 kB] Get: 21 http://deb.debian.org/debian trixie/main arm64 file arm64 1:5.45-2+b1 [43.2 kB] Get: 22 http://deb.debian.org/debian trixie/main arm64 gettext-base arm64 0.21-14+b1 [160 kB] Get: 23 http://deb.debian.org/debian trixie/main arm64 libuchardet0 arm64 0.0.8-1+b1 [69.0 kB] Get: 24 http://deb.debian.org/debian trixie/main arm64 groff-base arm64 1.23.0-3+b1 [1126 kB] Get: 25 http://deb.debian.org/debian trixie/main arm64 bsdextrautils arm64 2.39.3-6 [90.0 kB] Get: 26 http://deb.debian.org/debian trixie/main arm64 libpipeline1 arm64 1.5.7-2 [36.5 kB] Get: 27 http://deb.debian.org/debian trixie/main arm64 man-db arm64 2.12.0-3 [1385 kB] Get: 28 http://deb.debian.org/debian trixie/main arm64 python3-lib2to3 all 3.12.3-1 [77.6 kB] Get: 29 http://deb.debian.org/debian trixie/main arm64 2to3 all 3.11.8-1 [10.3 kB] Get: 30 http://deb.debian.org/debian trixie/main arm64 m4 arm64 1.4.19-4 [277 kB] Get: 31 http://deb.debian.org/debian trixie/main arm64 autoconf all 2.71-3 [332 kB] Get: 32 http://deb.debian.org/debian trixie/main arm64 autotools-dev all 20220109.1 [51.6 kB] Get: 33 http://deb.debian.org/debian trixie/main arm64 automake all 1:1.16.5-1.3 [823 kB] Get: 34 http://deb.debian.org/debian trixie/main arm64 autopoint all 0.21-14 [496 kB] Get: 35 http://deb.debian.org/debian trixie/main arm64 libdebhelper-perl all 13.15.3 [88.0 kB] Get: 36 http://deb.debian.org/debian trixie/main arm64 libtool all 2.4.7-7 [517 kB] Get: 37 http://deb.debian.org/debian trixie/main arm64 dh-autoreconf all 20 [17.1 kB] Get: 38 http://deb.debian.org/debian trixie/main arm64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 39 http://deb.debian.org/debian trixie/main arm64 libsub-override-perl all 0.10-1 [10.6 kB] Get: 40 http://deb.debian.org/debian trixie/main arm64 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 41 http://deb.debian.org/debian trixie/main arm64 dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 42 http://deb.debian.org/debian trixie/main arm64 libelf1t64 arm64 0.191-1+b1 [187 kB] Get: 43 http://deb.debian.org/debian trixie/main arm64 dwz arm64 0.15-1+b1 [102 kB] Get: 44 http://deb.debian.org/debian trixie/main arm64 libicu72 arm64 72.1-4+b1 [9224 kB] Get: 45 http://deb.debian.org/debian trixie/main arm64 libxml2 arm64 2.9.14+dfsg-1.3+b3 [624 kB] Get: 46 http://deb.debian.org/debian trixie/main arm64 gettext arm64 0.21-14+b1 [1249 kB] Get: 47 http://deb.debian.org/debian trixie/main arm64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 48 http://deb.debian.org/debian trixie/main arm64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 49 http://deb.debian.org/debian trixie/main arm64 debhelper all 13.15.3 [901 kB] Get: 50 http://deb.debian.org/debian trixie/main arm64 python3-pkg-resources all 68.1.2-2 [241 kB] Get: 51 http://deb.debian.org/debian trixie/main arm64 python3-distutils all 3.12.3-1 [131 kB] Get: 52 http://deb.debian.org/debian trixie/main arm64 python3-setuptools all 68.1.2-2 [468 kB] Get: 53 http://deb.debian.org/debian trixie/main arm64 dh-python all 6.20240422 [107 kB] Get: 54 http://deb.debian.org/debian trixie/main arm64 libpython3.12-stdlib arm64 3.12.3-1 [1889 kB] Get: 55 http://deb.debian.org/debian trixie/main arm64 python3.12 arm64 3.12.3-1 [659 kB] Get: 56 http://deb.debian.org/debian trixie/main arm64 python3-all arm64 3.11.8-1 [1056 B] Fetched 33.8 MB in 0s (144 MB/s) debconf: delaying package configuration, since apt-utils is not installed dpkg: libdb5.3:arm64: dependency problems, but removing anyway as you requested: libperl5.38:arm64 depends on libdb5.3. libpam-modules:arm64 depends on libdb5.3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19941 files and directories currently installed.) Removing libdb5.3:arm64 (5.3.28+dfsg2-4+b1) ... Selecting previously unselected package libdb5.3t64:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19934 files and directories currently installed.) Preparing to unpack .../libdb5.3t64_5.3.28+dfsg2-7_arm64.deb ... Unpacking libdb5.3t64:arm64 (5.3.28+dfsg2-7) ... Setting up libdb5.3t64:arm64 (5.3.28+dfsg2-7) ... dpkg: libssl3:arm64: dependency problems, but removing anyway as you requested: libkrb5-3:arm64 depends on libssl3 (>= 3.0.0). coreutils depends on libssl3 (>= 3.0.0). (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19940 files and directories currently installed.) Removing libssl3:arm64 (3.1.5-1) ... Selecting previously unselected package libssl3t64:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19927 files and directories currently installed.) Preparing to unpack .../libssl3t64_3.2.1-3_arm64.deb ... Unpacking libssl3t64:arm64 (3.2.1-3) ... Setting up libssl3t64:arm64 (3.2.1-3) ... Selecting previously unselected package libpython3.11-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19942 files and directories currently installed.) Preparing to unpack .../libpython3.11-minimal_3.11.9-1_arm64.deb ... Unpacking libpython3.11-minimal:arm64 (3.11.9-1) ... Selecting previously unselected package libexpat1:arm64. Preparing to unpack .../libexpat1_2.6.2-1_arm64.deb ... Unpacking libexpat1:arm64 (2.6.2-1) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../python3.11-minimal_3.11.9-1_arm64.deb ... Unpacking python3.11-minimal (3.11.9-1) ... Setting up libpython3.11-minimal:arm64 (3.11.9-1) ... Setting up libexpat1:arm64 (2.6.2-1) ... Setting up python3.11-minimal (3.11.9-1) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20258 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.8-1_arm64.deb ... Unpacking python3-minimal (3.11.8-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2024a-3_all.deb ... Unpacking tzdata (2024a-3) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.2-4_all.deb ... Unpacking readline-common (8.2-4) ... Selecting previously unselected package libreadline8t64:arm64. Preparing to unpack .../5-libreadline8t64_8.2-4_arm64.deb ... Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:arm64 (8.2-4) ... Selecting previously unselected package libpython3.11-stdlib:arm64. Preparing to unpack .../6-libpython3.11-stdlib_3.11.9-1_arm64.deb ... Unpacking libpython3.11-stdlib:arm64 (3.11.9-1) ... Selecting previously unselected package python3.11. Preparing to unpack .../7-python3.11_3.11.9-1_arm64.deb ... Unpacking python3.11 (3.11.9-1) ... Selecting previously unselected package libpython3-stdlib:arm64. Preparing to unpack .../8-libpython3-stdlib_3.11.8-1_arm64.deb ... Unpacking libpython3-stdlib:arm64 (3.11.8-1) ... Setting up python3-minimal (3.11.8-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 21250 files and directories currently installed.) Preparing to unpack .../00-python3_3.11.8-1_arm64.deb ... Unpacking python3 (3.11.8-1) ... Selecting previously unselected package libpython3.12-minimal:arm64. Preparing to unpack .../01-libpython3.12-minimal_3.12.3-1_arm64.deb ... Unpacking libpython3.12-minimal:arm64 (3.12.3-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../02-python3.12-minimal_3.12.3-1_arm64.deb ... Unpacking python3.12-minimal (3.12.3-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../03-sensible-utils_0.0.22_all.deb ... Unpacking sensible-utils (0.0.22) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../04-libmagic-mgc_1%3a5.45-2+b1_arm64.deb ... Unpacking libmagic-mgc (1:5.45-2+b1) ... Selecting previously unselected package libmagic1:arm64. Preparing to unpack .../05-libmagic1_1%3a5.45-2+b1_arm64.deb ... Unpacking libmagic1:arm64 (1:5.45-2+b1) ... Selecting previously unselected package file. Preparing to unpack .../06-file_1%3a5.45-2+b1_arm64.deb ... Unpacking file (1:5.45-2+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../07-gettext-base_0.21-14+b1_arm64.deb ... Unpacking gettext-base (0.21-14+b1) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../08-libuchardet0_0.0.8-1+b1_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.8-1+b1) ... Selecting previously unselected package groff-base. Preparing to unpack .../09-groff-base_1.23.0-3+b1_arm64.deb ... Unpacking groff-base (1.23.0-3+b1) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../10-bsdextrautils_2.39.3-6_arm64.deb ... Unpacking bsdextrautils (2.39.3-6) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../11-libpipeline1_1.5.7-2_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.7-2) ... Selecting previously unselected package man-db. Preparing to unpack .../12-man-db_2.12.0-3_arm64.deb ... Unpacking man-db (2.12.0-3) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../13-python3-lib2to3_3.12.3-1_all.deb ... Unpacking python3-lib2to3 (3.12.3-1) ... Selecting previously unselected package 2to3. Preparing to unpack .../14-2to3_3.11.8-1_all.deb ... Unpacking 2to3 (3.11.8-1) ... Selecting previously unselected package m4. Preparing to unpack .../15-m4_1.4.19-4_arm64.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../16-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../17-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../18-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../19-autopoint_0.21-14_all.deb ... Unpacking autopoint (0.21-14) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../20-libdebhelper-perl_13.15.3_all.deb ... Unpacking libdebhelper-perl (13.15.3) ... Selecting previously unselected package libtool. Preparing to unpack .../21-libtool_2.4.7-7_all.deb ... Unpacking libtool (2.4.7-7) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../22-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../23-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../24-libsub-override-perl_0.10-1_all.deb ... Unpacking libsub-override-perl (0.10-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../25-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../26-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1t64:arm64. Preparing to unpack .../27-libelf1t64_0.191-1+b1_arm64.deb ... Unpacking libelf1t64:arm64 (0.191-1+b1) ... Selecting previously unselected package dwz. Preparing to unpack .../28-dwz_0.15-1+b1_arm64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:arm64. Preparing to unpack .../29-libicu72_72.1-4+b1_arm64.deb ... Unpacking libicu72:arm64 (72.1-4+b1) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../30-libxml2_2.9.14+dfsg-1.3+b3_arm64.deb ... Unpacking libxml2:arm64 (2.9.14+dfsg-1.3+b3) ... Selecting previously unselected package gettext. Preparing to unpack .../31-gettext_0.21-14+b1_arm64.deb ... Unpacking gettext (0.21-14+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../32-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../33-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../34-debhelper_13.15.3_all.deb ... Unpacking debhelper (13.15.3) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../35-python3-pkg-resources_68.1.2-2_all.deb ... Unpacking python3-pkg-resources (68.1.2-2) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../36-python3-distutils_3.12.3-1_all.deb ... Unpacking python3-distutils (3.12.3-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../37-python3-setuptools_68.1.2-2_all.deb ... Unpacking python3-setuptools (68.1.2-2) ... Selecting previously unselected package dh-python. Preparing to unpack .../38-dh-python_6.20240422_all.deb ... Unpacking dh-python (6.20240422) ... Selecting previously unselected package libpython3.12-stdlib:arm64. Preparing to unpack .../39-libpython3.12-stdlib_3.12.3-1_arm64.deb ... Unpacking libpython3.12-stdlib:arm64 (3.12.3-1) ... Selecting previously unselected package python3.12. Preparing to unpack .../40-python3.12_3.12.3-1_arm64.deb ... Unpacking python3.12 (3.12.3-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../41-python3-all_3.11.8-1_arm64.deb ... Unpacking python3-all (3.11.8-1) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:arm64 (1.5.7-2) ... Setting up libicu72:arm64 (72.1-4+b1) ... Setting up bsdextrautils (2.39.3-6) ... Setting up libmagic-mgc (1:5.45-2+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.15.3) ... Setting up libpython3.12-minimal:arm64 (3.12.3-1) ... Setting up libmagic1:arm64 (1:5.45-2+b1) ... Setting up gettext-base (0.21-14+b1) ... Setting up m4 (1.4.19-4) ... Setting up file (1:5.45-2+b1) ... Setting up libelf1t64:arm64 (0.191-1+b1) ... Setting up tzdata (2024a-3) ... Current default time zone: 'Etc/UTC' Local time is now: Sun Jun 1 20:34:05 UTC 2025. Universal Time is now: Sun Jun 1 20:34:05 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.21-14) ... Setting up autoconf (2.71-3) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.22) ... Setting up libuchardet0:arm64 (0.0.8-1+b1) ... Setting up libsub-override-perl (0.10-1) ... Setting up netbase (6.4) ... Setting up readline-common (8.2-4) ... Setting up libxml2:arm64 (2.9.14+dfsg-1.3+b3) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up python3.12-minimal (3.12.3-1) ... Setting up gettext (0.21-14+b1) ... Setting up libtool (2.4.7-7) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up libreadline8t64:arm64 (8.2-4) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up groff-base (1.23.0-3+b1) ... Setting up libpython3.12-stdlib:arm64 (3.12.3-1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:arm64 (3.11.9-1) ... Setting up python3.12 (3.12.3-1) ... Setting up man-db (2.12.0-3) ... Not building database; man-db/auto-update is not 'true'. Setting up libpython3-stdlib:arm64 (3.11.8-1) ... Setting up python3.11 (3.11.9-1) ... Setting up debhelper (13.15.3) ... Setting up python3 (3.11.8-1) ... Setting up python3-lib2to3 (3.12.3-1) ... Setting up python3-pkg-resources (68.1.2-2) ... Setting up python3-distutils (3.12.3-1) ... python3.12: can't get files for byte-compilation Setting up python3-setuptools (68.1.2-2) ... Setting up python3-all (3.11.8-1) ... Setting up 2to3 (3.11.8-1) ... Setting up dh-python (6.20240422) ... Processing triggers for libc-bin (2.37-18) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/python-dsv-1.4.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-dsv_1.4.1-12_source.changes dpkg-buildpackage: info: source package python-dsv dpkg-buildpackage: info: source version 1.4.1-12 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Jelmer Vernooij dpkg-source --before-build . dpkg-buildpackage: info: host architecture arm64 debian/rules clean dh clean --with python3 --buildsystem=pybuild debian/rules override_dh_auto_clean make[1]: Entering directory '/build/reproducible-path/python-dsv-1.4.1' [ ! -f DSV/DSV.py.bak ] || mv -v DSV/DSV.py.bak DSV/DSV.py dh_auto_clean I: pybuild base:311: python3.12 setup.py clean 'build/bdist.linux-aarch64' does not exist -- can't clean it 'build/scripts-3.12' does not exist -- can't clean it I: pybuild base:311: python3.11 setup.py clean 'build/bdist.linux-aarch64' does not exist -- can't clean it 'build/scripts-3.11' does not exist -- can't clean it make[1]: Leaving directory '/build/reproducible-path/python-dsv-1.4.1' dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --with python3 --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:311: python3.12 setup.py config I: pybuild base:311: python3.11 setup.py config dh_auto_build -O--buildsystem=pybuild I: pybuild pybuild:308: 2to3 -w DSV/DSV.py /usr/bin/2to3:3: DeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ from lib2to3.main import main RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: Refactored DSV/DSV.py --- DSV/DSV.py (original) +++ DSV/DSV.py (refactored) @@ -129,6 +129,7 @@ import re import copy import string +from functools import reduce ## RedHat 8.0 (or rather GTK2?) sets LANG = en_us.UTF-8 and apparently some ## older apps (including wxGTK) can't handle this. The fix is to set LANG=C ## before running the app. Thanks to Ahmad Baitalmal for supplying this info. @@ -146,10 +147,10 @@ except ImportError: wx = None -class InvalidDelimiter(StandardError): pass -class InvalidTextQualifier(StandardError): pass -class InvalidData(StandardError): pass -class InvalidNumberOfColumns(StandardError): pass +class InvalidDelimiter(Exception): pass +class InvalidTextQualifier(Exception): pass +class InvalidData(Exception): pass +class InvalidNumberOfColumns(Exception): pass # ------------------------------------------------------------------------------ def guessTextQualifier(input): @@ -176,7 +177,7 @@ regexp = re.compile('(?:(?:^|\n)(?P["\']).*?(?P=b_quote))|' '(?:(?P.)(?P["\']).*?(?P=quote)(?=(?P=delim)|\n))|' '(?:(?P["\']).*?(?P=e_quote)$)', re.M | re.S) - matches = filter(lambda i: reduce(lambda a, b: a + b, i), regexp.findall(data)) + matches = [i for i in regexp.findall(data) if reduce(lambda a, b: a + b, i)] if not matches: return None quotes = {} @@ -188,7 +189,7 @@ quotes[key] = quotes.get(key, 0) + 1 return reduce(lambda a, b, quotes = quotes: - (quotes[a] > quotes[b]) and a or b, quotes.keys()) + (quotes[a] > quotes[b]) and a or b, list(quotes.keys())) # ------------------------------------------------------------------------------ def guessDelimiter(input, textQualifier = '"'): @@ -247,8 +248,8 @@ metafrequency[freq] = metafrequency.get(freq, 0) + 1 # value is the mode charFrequency[char] = metafrequency - for char in charFrequency.keys(): - items = charFrequency[char].items() + for char in list(charFrequency.keys()): + items = list(charFrequency[char].items()) if len(items) == 1 and items[0][0] == 0: continue # get the mode of the frequencies if len(items) > 1: @@ -261,7 +262,7 @@ modes[char] = items[0] # build a list of possible delimiters - modeList = modes.items() + modeList = list(modes.items()) total = float(chunkLength * iteration) consistency = 1.0 # (rows of consistent data) / (number of rows) = 100% threshold = 0.9 # minimum consistency threshold @@ -273,7 +274,7 @@ consistency -= 0.01 if len(delims) == 1: - return delims.keys()[0] + return list(delims.keys())[0] # analyze another chunkLength lines start = end @@ -288,20 +289,20 @@ regexp = re.compile('%s(.*?)%s' % (textQualifier, textQualifier), re.S) for line in input: inQuotes = "".join(regexp.findall(line)) - for d in delims.keys(): + for d in list(delims.keys()): if not d in inQuotes: del delims[d] if len(delims) == 1: - return delims.keys()[0] + return list(delims.keys())[0] # if there's *still* more than one, fall back to a 'preferred' list if len(delims) > 1: for d in ['\t', ',', ';', ' ', ':']: - if d in delims.keys(): + if d in list(delims.keys()): return d # finally, just return the first damn character in the list - return delims.keys()[0] + return list(delims.keys())[0] # ------------------------------------------------------------------------------ def modeOfLengths(input): @@ -320,7 +321,7 @@ l = len(row) freq[l] = freq.get(l, 0) + 1 - return reduce(lambda a, b, freq = freq: (freq[a] > freq[b]) and a or b, freq.keys()) + return reduce(lambda a, b, freq = freq: (freq[a] > freq[b]) and a or b, list(freq.keys())) # ------------------------------------------------------------------------------ def guessHeaders(input, columns = 0): @@ -344,7 +345,7 @@ # Finally, a 'vote' is taken at the end for each column, adding or subtracting from # the likelihood of the first row being a header. - if type(input) != type([]): raise InvalidData, "list expected." + if type(input) != type([]): raise InvalidData("list expected.") if len(input) < 2: return 0 if not columns: @@ -356,7 +357,7 @@ for row in input[1:]: if len(row) != columns: continue # skip rows that have irregular number of columns - for col in columnTypes.keys(): + for col in list(columnTypes.keys()): try: try: # is it a built-in type (besides string)? @@ -377,7 +378,7 @@ # finally, compare results against first row and vote on whether it's a header hasHeader = 0 - for col, colType in columnTypes.items(): + for col, colType in list(columnTypes.items()): if type(colType) == type(0): # it's a length if len(input[0][col]) != colType: hasHeader += 1 @@ -430,7 +431,7 @@ # filter out empty lines # data = filter(lambda i: "".join(i), data) - data = filter(string.join, data) + data = list(filter(string.join, data)) return data # ------------------------------------------------------------------------------ @@ -485,15 +486,15 @@ list of lists of data """ if type(input) != type([]): - raise InvalidData, "expected list of lists of strings" + raise InvalidData("expected list of lists of strings") # Try to convert Unicode delimiters back to ASCII (wxPython can be # overenthusiastic), but ultimately support either. try: delimiter = delimiter.encode() except: pass - if (type(delimiter) != str and type(delimiter) != unicode) or not delimiter: - raise InvalidDelimiter, `delimiter` + if (type(delimiter) != str and type(delimiter) != str) or not delimiter: + raise InvalidDelimiter(repr(delimiter)) ## if textQualifier: ## # fieldRex=re.compile('(?:(?:[,]|^)"(.*?)"(?=[,]|$))|(?:(?:[,]|^)([^",]*?)(?=[,]|$))') @@ -560,10 +561,10 @@ record.append(accu) else: #record = map(lambda x: x.strip(), line.split(delimiter)) - record = map(string.strip, line.split(delimiter)) + record = list(map(string.strip, line.split(delimiter))) if stripall: # 1.4.1 - record = map(string.strip, record) + record = list(map(string.strip, record)) newdata.append(record) # (end of replacement code) @@ -581,18 +582,18 @@ maxColumns = max([len(line) for line in newdata]) # consistency check - for record in xrange(len(newdata)): + for record in range(len(newdata)): length = len(newdata[record]) difference = length - columns if difference: if errorHandler is None: - raise InvalidNumberOfColumns, "Expected %d, got %d" % (columns, length) + raise InvalidNumberOfColumns("Expected %d, got %d" % (columns, length)) else: newdata[record] = errorHandler(record, input[record], newdata[record], columns, maxColumns) # remove null values from data # newdata = filter(lambda i: i, newdata) - newdata = filter(None, newdata) + newdata = [_f for _f in newdata if _f] return newdata @@ -617,19 +618,19 @@ if not textQualifier or type(delimiter) != type(''): raise InvalidTextQualifier # double-up all text qualifiers in data (i.e. can't becomes can''t) - data = map(lambda i, q = textQualifier: - map(lambda j, q = q: str(j).replace(q, q * 2), i), - input) + data = list(map(lambda i, q = textQualifier: RefactoringTool: Files that were modified: RefactoringTool: DSV/DSV.py + list(map(lambda j, q = q: str(j).replace(q, q * 2), i)), + input)) if quoteall: # quote every data value - data = map(lambda i, q = textQualifier: - map(lambda j, q = q: q + j + q, i), - data) + data = list(map(lambda i, q = textQualifier: + list(map(lambda j, q = q: q + j + q, i)), + data)) else: # quote only the values that contain qualifiers, delimiters or newlines - data = map(lambda i, q = textQualifier, d = delimiter: - map(lambda j, q = q, d = d: ((j.find(q) != -1 or j.find(d) != -1 + data = list(map(lambda i, q = textQualifier, d = delimiter: + list(map(lambda j, q = q, d = d: ((j.find(q) != -1 or j.find(d) != -1 or j.find('\n') != -1) - and (q + j + q)) or j, i), data) + and (q + j + q)) or j, i)), data)) # assemble each line with delimiters data = [delimiter.join(line) for line in data] @@ -717,7 +718,7 @@ self.delimChecks = {} - for label, value in delims.items(): + for label, value in list(delims.items()): self.delimChecks[value] = wx.CheckBox(self, -1, label) delimGridSizer.Add(self.delimChecks[value], 0, wx.ALL, 3) wx.EVT_CHECKBOX(self, self.delimChecks[value].GetId(), self.Validate) @@ -730,7 +731,7 @@ self.otherDelim = wx.TextCtrl(self, -1, size = (20, -1)) wx.EVT_TEXT(self, self.otherDelim.GetId(), self.OnCustomDelim) - if self.delimChecks.has_key(delimiter): + if delimiter in self.delimChecks: self.delimChecks[delimiter].SetValue(True) elif delimiter is not None: self.delimChecks['Other'].SetValue(True) @@ -859,7 +860,7 @@ self.BuildPreview() def Validate(self, event = None): - hasDelimiter = reduce(lambda a, b: a + b, [cb.GetValue() for cb in self.delimChecks.values()]) + hasDelimiter = reduce(lambda a, b: a + b, [cb.GetValue() for cb in list(self.delimChecks.values())]) if hasDelimiter == 1 and self.delimChecks['Other'].GetValue(): hasDelimiter = self.otherDelim.GetValue() != "" self.BuildPreview() @@ -880,8 +881,8 @@ textQualifier = self.textQualifierChoice.GetStringSelection() if textQualifier == '{None}': textQualifier = None other = self.otherDelim.GetValue() - delimiter = map(lambda i, other = other: i[0] != 'Other' and i[0] or other, - filter(lambda i: i[1].GetValue(), self.delimChecks.items())) + delimiter = list(map(lambda i, other = other: i[0] != 'Other' and i[0] or other, + [i for i in list(self.delimChecks.items()) if i[1].GetValue()])) delimiter = "".join(delimiter) rows = self.previewRows.GetValue() @@ -892,8 +893,8 @@ textQualifier = textQualifier, delimiter = delimiter, errorHandler = padRow) - except InvalidDelimiter, e: - previewData = map(lambda i: [i], newdata[:rows]) + except InvalidDelimiter as e: + previewData = [[i] for i in newdata[:rows]] rows = min(rows, len(previewData)) hasHeaders = self.hasHeaderRow.GetValue() @@ -1041,9 +1042,9 @@ # ------------------------------------------------------------------------------ if __name__ == '__main__': if wx is None: - print "\nYou need wxPython to run this sample*." - print "\n*Note that wxPython is _not_ necessary to use this module, but it is required" - print "to use the wizard dialog (which the sample requires)." + print("\nYou need wxPython to run this sample*.") + print("\n*Note that wxPython is _not_ necessary to use this module, but it is required") + print("to use the wizard dialog (which the sample requires).") raise SystemExit @@ -1072,16 +1073,16 @@ headers, data = results if 0: # print the output to stdout if headers: - print headers - print 80*'=' + print(headers) + print(80*'=') for row in data: - print row + print(row) if 0: # for testing export functionality if headers: - print exportDSV([headers] + data) + print(exportDSV([headers] + data)) else: - print exportDSV(data) + print(exportDSV(data)) else: dlg.Destroy() I: pybuild base:311: /usr/bin/python3.12 setup.py build I: pybuild pybuild:308: 2to3 -w DSV/DSV.py /usr/bin/2to3:3: DeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ from lib2to3.main import main RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: Refactored DSV/DSV.py RefactoringTool: Files that were modified: RefactoringTool: DSV/DSV.py --- DSV/DSV.py (original) +++ DSV/DSV.py (refactored) @@ -1074,15 +1074,15 @@ if 0: # print the output to stdout if headers: print(headers) - print(80*'=') + print((80*'=')) for row in data: print(row) if 0: # for testing export functionality if headers: - print(exportDSV([headers] + data)) + print((exportDSV([headers] + data))) else: - print(exportDSV(data)) + print((exportDSV(data))) else: dlg.Destroy() I: pybuild base:311: /usr/bin/python3 setup.py build dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/python-dsv-1.4.1/.pybuild/cpython3_3.12_dsv/build; python3.12 -m unittest discover -v ---------------------------------------------------------------------- Ran 0 tests in 0.000s NO TESTS RAN I: pybuild base:311: cd /build/reproducible-path/python-dsv-1.4.1/.pybuild/cpython3_3.11_dsv/build; python3.11 -m unittest discover -v ---------------------------------------------------------------------- Ran 0 tests in 0.000s OK create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=pybuild dh_prep -O--buildsystem=pybuild dh_auto_install --destdir=debian/python3-dsv/ -O--buildsystem=pybuild I: pybuild base:311: /usr/bin/python3.12 setup.py install --root /build/reproducible-path/python-dsv-1.4.1/debian/python3-dsv /usr/lib/python3/dist-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. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() I: pybuild base:311: /usr/bin/python3 setup.py install --root /build/reproducible-path/python-dsv-1.4.1/debian/python3-dsv /usr/lib/python3/dist-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. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() dh_installdocs -O--buildsystem=pybuild dh_installchangelogs -O--buildsystem=pybuild dh_python3 -O--buildsystem=pybuild dh_installsystemduser -O--buildsystem=pybuild dh_perl -O--buildsystem=pybuild dh_link -O--buildsystem=pybuild dh_strip_nondeterminism -O--buildsystem=pybuild dh_compress -O--buildsystem=pybuild dh_fixperms -O--buildsystem=pybuild dh_missing -O--buildsystem=pybuild dh_installdeb -O--buildsystem=pybuild dh_gencontrol -O--buildsystem=pybuild dpkg-gencontrol: warning: Provides field of package python3-dsv: substitution variable ${python3:Provides} used, but is not defined dh_md5sums -O--buildsystem=pybuild dh_builddeb -O--buildsystem=pybuild dpkg-deb: building package 'python3-dsv' in '../python3-dsv_1.4.1-12_all.deb'. dpkg-genbuildinfo --build=binary -O../python-dsv_1.4.1-12_arm64.buildinfo dpkg-genchanges --build=binary -O../python-dsv_1.4.1-12_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/3706164 and its subdirectories I: Current time: Sun Jun 1 08:34:23 -12 2025 I: pbuilder-time-stamp: 1748810063 Mon Apr 29 14:11:25 UTC 2024 I: 1st build successful. Starting 2nd build on remote node codethink03-arm64.debian.net. Mon Apr 29 14:11:25 UTC 2024 I: Preparing to do remote build '2' on codethink03-arm64.debian.net. Mon Apr 29 14:12:47 UTC 2024 I: Deleting $TMPDIR on codethink03-arm64.debian.net. Mon Apr 29 14:12:48 UTC 2024 I: python-dsv_1.4.1-12_arm64.changes: Format: 1.8 Date: Wed, 14 Dec 2022 19:24:50 +0000 Source: python-dsv Binary: python3-dsv Architecture: all Version: 1.4.1-12 Distribution: unstable Urgency: medium Maintainer: Debian Python Team Changed-By: Jelmer Vernooij Description: python3-dsv - Python module for delimiter-separated-value files (Python 3) Changes: python-dsv (1.4.1-12) unstable; urgency=medium . [ Debian Janitor ] * Use secure URI in Homepage field. * Update standards version to 4.6.1, no changes needed. Checksums-Sha1: 18890e4d17d55fd4e8fbb579464499360d4f4c28 5636 python-dsv_1.4.1-12_arm64.buildinfo be185e663e1916f3bc42d387a3fd766d6b6fbb97 16488 python3-dsv_1.4.1-12_all.deb Checksums-Sha256: d247bcb8a1282988cb63b8d9ccb936c8d25c68849ba712820cfb2cc900af57eb 5636 python-dsv_1.4.1-12_arm64.buildinfo 0d6ac2919072a8ad8956bc24f9a383f395aec5ded8047917347fb7fccf475c05 16488 python3-dsv_1.4.1-12_all.deb Files: 7311e160173d3b151c6fe363c6e3b5a7 5636 python optional python-dsv_1.4.1-12_arm64.buildinfo 7c9f22ff3376a8399ddb9c50415cad62 16488 python optional python3-dsv_1.4.1-12_all.deb Mon Apr 29 14:12:49 UTC 2024 I: diffoscope 265 will be used to compare the two builds: Running as unit: rb-diffoscope-arm64_2-33062.service # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.mFRccFCF/python-dsv_1.4.1-12.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.mFRccFCF/python-dsv_1.4.1-12.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.mFRccFCF/python-dsv_1.4.1-12.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.mFRccFCF/b1/python-dsv_1.4.1-12_arm64.changes /srv/reproducible-results/rbuild-debian/r-b-build.mFRccFCF/b2/python-dsv_1.4.1-12_arm64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call abc.DotChangesFile ## main (total time: 0.317s) 0.317s 2 calls outputs 0.000s 1 call cleanup ## recognizes (total time: 0.014s) 0.014s 12 calls diffoscope.comparators.binary.FilesystemFile ## specialize (total time: 0.000s) 0.000s 1 call specialize Finished with result: success Main processes terminated with: code=exited/status=0 Service runtime: 612ms CPU time consumed: 612ms Mon Apr 29 14:12:50 UTC 2024 I: diffoscope 265 found no differences in the changes files, and a .buildinfo file also exists. Mon Apr 29 14:12:50 UTC 2024 I: python-dsv from trixie built successfully and reproducibly on arm64. Mon Apr 29 14:12:51 UTC 2024 I: Submitting .buildinfo files to external archives: Mon Apr 29 14:12:51 UTC 2024 I: Submitting 8.0K b1/python-dsv_1.4.1-12_arm64.buildinfo.asc Mon Apr 29 14:12:53 UTC 2024 I: Submitting 8.0K b2/python-dsv_1.4.1-12_arm64.buildinfo.asc Mon Apr 29 14:12:54 UTC 2024 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Mon Apr 29 14:12:54 UTC 2024 I: Done submitting .buildinfo files. Mon Apr 29 14:12:54 UTC 2024 I: Removing signed python-dsv_1.4.1-12_arm64.buildinfo.asc files: removed './b1/python-dsv_1.4.1-12_arm64.buildinfo.asc' removed './b2/python-dsv_1.4.1-12_arm64.buildinfo.asc'