0s autopkgtest [09:48:34]: starting date and time: 2024-03-26 09:48:34+0000 0s autopkgtest [09:48:34]: git checkout: 4a1cd702 l/adt_testbed: don't blame the testbed for unsolvable build deps 0s autopkgtest [09:48:34]: host juju-7f2275-prod-proposed-migration-environment-4; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.b9f3o9ga/out --timeout-copy=6000 --setup-commands 'dhclient || true; ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed --apt-upgrade python-libtmux --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=setuptools/68.1.2-2ubuntu1 python3-defaults/3.12.2-0ubuntu1' -- lxd -r lxd-armhf-10.145.243.181 lxd-armhf-10.145.243.181:autopkgtest/ubuntu/noble/armhf 25s autopkgtest [09:48:59]: testbed dpkg architecture: armhf 27s autopkgtest [09:49:01]: testbed apt version: 2.7.12 27s autopkgtest [09:49:01]: @@@@@@@@@@@@@@@@@@@@ test bed setup 35s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 36s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [4022 kB] 36s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [56.0 kB] 36s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [494 kB] 36s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [7592 B] 36s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main armhf Packages [669 kB] 36s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main armhf c-n-f Metadata [2492 B] 36s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf Packages [1372 B] 36s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf c-n-f Metadata [116 B] 36s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf Packages [4072 kB] 37s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf c-n-f Metadata [7776 B] 37s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf Packages [49.1 kB] 37s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf c-n-f Metadata [116 B] 39s Fetched 9499 kB in 2s (3919 kB/s) 40s Reading package lists... 46s sh: 1: dhclient: not found 49s tee: /proc/self/fd/2: Permission denied 71s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 71s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 71s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 71s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 72s Reading package lists... 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 73s Calculating upgrade... 73s The following packages were automatically installed and are no longer required: 73s linux-headers-6.8.0-11 python3-distutils python3-lib2to3 73s Use 'apt autoremove' to remove them. 74s The following packages will be REMOVED: 74s libapt-pkg6.0 libarchive13 libatm1 libcurl3-gnutls libcurl4 libdb5.3 libelf1 74s libext2fs2 libgdbm-compat4 libgdbm6 libglib2.0-0 libgnutls30 libgpgme11 74s libhogweed6 libmagic1 libnetplan0 libnettle8 libnpth0 libnvme1 libparted2 74s libpcap0.8 libperl5.38 libpng16-16 libpsl5 libreadline8 libreiserfscore0 74s libssl3 libtirpc3 libuv1 linux-headers-6.8.0-11-generic 74s The following NEW packages will be installed: 74s libapt-pkg6.0t64 libarchive13t64 libatm1t64 libcurl3t64-gnutls libcurl4t64 74s libdb5.3t64 libelf1t64 libext2fs2t64 libgdbm-compat4t64 libgdbm6t64 74s libglib2.0-0t64 libgnutls30t64 libgpgme11t64 libhogweed6t64 libmagic1t64 74s libnetplan1 libnettle8t64 libnpth0t64 libnvme1t64 libparted2t64 74s libpcap0.8t64 libperl5.38t64 libpng16-16t64 libpsl5t64 libreadline8t64 74s libreiserfscore0t64 libssl3t64 libtirpc3t64 libuv1t64 linux-headers-6.8.0-20 74s linux-headers-6.8.0-20-generic xdg-user-dirs 74s The following packages have been kept back: 74s multipath-tools 74s The following packages will be upgraded: 74s apparmor apt apt-utils bind9-dnsutils bind9-host bind9-libs binutils 74s binutils-arm-linux-gnueabihf binutils-common bolt bsdextrautils bsdutils 74s btrfs-progs coreutils cryptsetup-bin curl dbus dbus-bin dbus-daemon 74s dbus-session-bus-common dbus-system-bus-common dbus-user-session dhcpcd-base 74s dirmngr dmsetup dpkg dpkg-dev e2fsprogs e2fsprogs-l10n eject fdisk file ftp 74s fwupd gawk gcc-13-base gcc-14-base gir1.2-girepository-2.0 gir1.2-glib-2.0 74s gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpgconf gpgsm gpgv 74s groff-base ibverbs-providers inetutils-telnet info initramfs-tools 74s initramfs-tools-bin initramfs-tools-core install-info iproute2 jq keyboxd 74s kmod kpartx krb5-locales libapparmor1 libaudit-common libaudit1 libbinutils 74s libblkid1 libblockdev-crypto3 libblockdev-fs3 libblockdev-loop3 74s libblockdev-mdraid3 libblockdev-nvme3 libblockdev-part3 libblockdev-swap3 74s libblockdev-utils3 libblockdev3 libbpf1 libbrotli1 libcap-ng0 libcom-err2 74s libcryptsetup12 libctf-nobfd0 libctf0 libdbus-1-3 libdebconfclient0 74s libdevmapper1.02.1 libdpkg-perl libevent-core-2.1-7 libexpat1 libfdisk1 74s libfido2-1 libftdi1-2 libfwupd2 libgcc-s1 libgirepository-1.0-1 74s libglib2.0-data libgssapi-krb5-2 libgudev-1.0-0 libgusb2 libibverbs1 74s libjcat1 libjq1 libjson-glib-1.0-0 libjson-glib-1.0-common libk5crypto3 74s libkmod2 libkrb5-3 libkrb5support0 libldap-common libldap2 74s liblocale-gettext-perl liblzma5 libmagic-mgc libmbim-glib4 libmbim-proxy 74s libmm-glib0 libmount1 libnghttp2-14 libnsl2 libnss-systemd libpam-modules 74s libpam-modules-bin libpam-runtime libpam-systemd libpam0g libplymouth5 74s libpolkit-agent-1-0 libpolkit-gobject-1-0 libproc2-0 libprotobuf-c1 74s libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib 74s libpython3.12-minimal libpython3.12-stdlib libqmi-glib5 libqmi-proxy 74s libqrtr-glib0 librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db 74s libseccomp2 libselinux1 libsemanage-common libsemanage2 libsframe1 libslang2 74s libsmartcols1 libsqlite3-0 libss2 libssh-4 libstdc++6 libsystemd-shared 74s libsystemd0 libtext-charwidth-perl libtext-iconv-perl libtirpc-common 74s libudev1 libudisks2-0 libusb-1.0-0 libuuid1 libvolume-key1 libxml2 libxmlb2 74s libxmuu1 linux-headers-generic logsave lshw lsof man-db mount mtr-tiny 74s netplan-generator netplan.io openssh-client openssh-server 74s openssh-sftp-server openssl parted perl perl-base perl-modules-5.38 74s pinentry-curses plymouth plymouth-theme-ubuntu-text procps psmisc 74s python-apt-common python3 python3-apt python3-cryptography python3-dbus 74s python3-distutils python3-gdbm python3-gi python3-lib2to3 python3-minimal 74s python3-netplan python3-pkg-resources python3-pyrsistent python3-setuptools 74s python3-typing-extensions python3-yaml python3.11 python3.11-minimal 74s python3.12 python3.12-minimal readline-common rsync rsyslog shared-mime-info 74s sudo systemd systemd-dev systemd-resolved systemd-sysv systemd-timesyncd 74s tcpdump telnet tnftp ubuntu-pro-client ubuntu-pro-client-l10n udev udisks2 74s usb.ids util-linux uuid-runtime vim-common vim-tiny wget xxd xz-utils zlib1g 74s 234 upgraded, 32 newly installed, 30 to remove and 1 not upgraded. 74s Need to get 100 MB of archives. 74s After this operation, 85.0 MB of additional disk space will be used. 74s Get:1 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bsdutils armhf 1:2.39.3-9ubuntu2 [102 kB] 74s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libbrotli1 armhf 1.1.0-2build1 [319 kB] 74s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgssapi-krb5-2 armhf 1.20.1-6ubuntu1 [119 kB] 74s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libkrb5-3 armhf 1.20.1-6ubuntu1 [320 kB] 74s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libkrb5support0 armhf 1.20.1-6ubuntu1 [31.5 kB] 74s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libk5crypto3 armhf 1.20.1-6ubuntu1 [78.6 kB] 74s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcom-err2 armhf 1.47.0-2.4~exp1ubuntu2 [21.9 kB] 74s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/main armhf zlib1g armhf 1:1.3.dfsg-3.1ubuntu1 [49.2 kB] 74s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/main armhf librtmp1 armhf 2.4+20151223.gitfa8646d.1-2build6 [51.3 kB] 74s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/main armhf udisks2 armhf 2.10.1-6 [276 kB] 74s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libudisks2-0 armhf 2.10.1-6 [143 kB] 74s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblkid1 armhf 2.39.3-9ubuntu2 [160 kB] 74s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/main armhf liblzma5 armhf 5.6.0-0.2 [117 kB] 74s Get:14 http://ftpmaster.internal/ubuntu noble-proposed/main armhf kmod armhf 31+20240202-2ubuntu4 [91.8 kB] 74s Get:15 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libkmod2 armhf 31+20240202-2ubuntu4 [44.9 kB] 74s Get:16 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-dev all 255.4-1ubuntu5 [103 kB] 75s Get:17 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-timesyncd armhf 255.4-1ubuntu5 [36.0 kB] 75s Get:18 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-session-bus-common all 1.14.10-4ubuntu2 [80.3 kB] 75s Get:19 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libaudit-common all 1:3.1.2-2.1 [5674 B] 75s Get:20 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcap-ng0 armhf 0.8.4-2build1 [13.5 kB] 75s Get:21 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libaudit1 armhf 1:3.1.2-2.1 [44.3 kB] 75s Get:22 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam0g armhf 1.5.3-5ubuntu3 [62.0 kB] 75s Get:23 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libselinux1 armhf 3.5-2ubuntu1 [70.9 kB] 75s Get:24 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcurl4t64 armhf 8.5.0-2ubuntu8 [296 kB] 75s Get:25 http://ftpmaster.internal/ubuntu noble-proposed/main armhf curl armhf 8.5.0-2ubuntu8 [219 kB] 75s Get:26 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpsl5t64 armhf 0.21.2-1.1 [55.7 kB] 75s Get:27 http://ftpmaster.internal/ubuntu noble-proposed/main armhf wget armhf 1.21.4-1ubuntu2 [317 kB] 75s Get:28 http://ftpmaster.internal/ubuntu noble-proposed/main armhf tnftp armhf 20230507-2build1 [98.6 kB] 75s Get:29 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpcap0.8t64 armhf 1.10.4-4.1ubuntu2 [137 kB] 75s Get:30 http://ftpmaster.internal/ubuntu noble-proposed/main armhf tcpdump armhf 4.99.4-3ubuntu2 [425 kB] 75s Get:31 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsystemd-shared armhf 255.4-1ubuntu5 [2009 kB] 75s Get:32 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-resolved armhf 255.4-1ubuntu5 [289 kB] 75s Get:33 http://ftpmaster.internal/ubuntu noble-proposed/main armhf sudo armhf 1.9.15p5-3ubuntu3 [936 kB] 75s Get:34 http://ftpmaster.internal/ubuntu noble-proposed/main armhf rsync armhf 3.2.7-1build1 [413 kB] 75s Get:35 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-cryptography armhf 41.0.7-4build2 [788 kB] 76s Get:36 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssl armhf 3.0.13-0ubuntu2 [975 kB] 76s Get:37 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssh-sftp-server armhf 1:9.6p1-3ubuntu11 [35.5 kB] 76s Get:38 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssh-client armhf 1:9.6p1-3ubuntu11 [890 kB] 76s Get:39 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssh-server armhf 1:9.6p1-3ubuntu11 [503 kB] 76s Get:40 http://ftpmaster.internal/ubuntu noble-proposed/main armhf linux-headers-6.8.0-20 all 6.8.0-20.20 [13.6 MB] 77s Get:41 http://ftpmaster.internal/ubuntu noble-proposed/main armhf linux-headers-6.8.0-20-generic armhf 6.8.0-20.20 [1287 kB] 77s Get:42 http://ftpmaster.internal/ubuntu noble-proposed/main armhf linux-headers-generic armhf 6.8.0-20.20+1 [9610 B] 77s Get:43 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libssl3t64 armhf 3.0.13-0ubuntu2 [1558 kB] 77s Get:44 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnss-systemd armhf 255.4-1ubuntu5 [148 kB] 77s Get:45 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libudev1 armhf 255.4-1ubuntu5 [166 kB] 77s Get:46 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd armhf 255.4-1ubuntu5 [3502 kB] 77s Get:47 http://ftpmaster.internal/ubuntu noble-proposed/main armhf udev armhf 255.4-1ubuntu5 [1852 kB] 77s Get:48 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-sysv armhf 255.4-1ubuntu5 [11.9 kB] 77s Get:49 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-systemd armhf 255.4-1ubuntu5 [216 kB] 77s Get:50 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsystemd0 armhf 255.4-1ubuntu5 [410 kB] 77s Get:51 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-modules-bin armhf 1.5.3-5ubuntu3 [47.0 kB] 77s Get:52 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-modules armhf 1.5.3-5ubuntu3 [261 kB] 77s Get:53 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-runtime all 1.5.3-5ubuntu3 [40.8 kB] 77s Get:54 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-user-session armhf 1.14.10-4ubuntu2 [9962 B] 77s Get:55 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libapparmor1 armhf 4.0.0-beta3-0ubuntu2 [45.0 kB] 77s Get:56 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gcc-14-base armhf 14-20240315-1ubuntu1 [47.0 kB] 77s Get:57 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgcc-s1 armhf 14-20240315-1ubuntu1 [41.5 kB] 77s Get:58 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libstdc++6 armhf 14-20240315-1ubuntu1 [714 kB] 77s Get:59 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libexpat1 armhf 2.6.1-2 [65.9 kB] 77s Get:60 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-system-bus-common all 1.14.10-4ubuntu2 [81.5 kB] 77s Get:61 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-bin armhf 1.14.10-4ubuntu2 [37.1 kB] 77s Get:62 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus armhf 1.14.10-4ubuntu2 [28.1 kB] 77s Get:63 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-daemon armhf 1.14.10-4ubuntu2 [109 kB] 77s Get:64 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdbus-1-3 armhf 1.14.10-4ubuntu2 [190 kB] 77s Get:65 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmount1 armhf 2.39.3-9ubuntu2 [171 kB] 77s Get:66 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libseccomp2 armhf 2.5.5-1ubuntu2 [49.5 kB] 77s Get:67 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdevmapper1.02.1 armhf 2:1.02.185-3ubuntu2 [135 kB] 77s Get:68 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libuuid1 armhf 2.39.3-9ubuntu2 [34.4 kB] 77s Get:69 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcryptsetup12 armhf 2:2.7.0-1ubuntu2 [238 kB] 77s Get:70 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libfdisk1 armhf 2.39.3-9ubuntu2 [196 kB] 77s Get:71 http://ftpmaster.internal/ubuntu noble-proposed/main armhf mount armhf 2.39.3-9ubuntu2 [134 kB] 77s Get:72 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-utils3 armhf 3.1.0-1build1 [16.9 kB] 77s Get:73 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libvolume-key1 armhf 0.3.12-7build1 [38.4 kB] 77s Get:74 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjcat1 armhf 0.2.0-2build2 [30.4 kB] 77s Get:75 http://ftpmaster.internal/ubuntu noble-proposed/main armhf parted armhf 3.6-3.1build2 [39.4 kB] 77s Get:76 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libparted2t64 armhf 3.6-3.1build2 [143 kB] 77s Get:77 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.12 armhf 3.12.2-4build3 [645 kB] 77s Get:78 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.12-minimal armhf 3.12.2-4build3 [1942 kB] 78s Get:79 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.12-stdlib armhf 3.12.2-4build3 [1906 kB] 78s Get:80 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.12-minimal armhf 3.12.2-4build3 [816 kB] 78s Get:81 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsasl2-modules-db armhf 2.1.28+dfsg1-5ubuntu1 [19.0 kB] 78s Get:82 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.11 armhf 3.11.8-1build4 [589 kB] 78s Get:83 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.11-minimal armhf 3.11.8-1build4 [1795 kB] 78s Get:84 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.11-stdlib armhf 3.11.8-1build4 [1810 kB] 78s Get:85 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.11-minimal armhf 3.11.8-1build4 [826 kB] 78s Get:86 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsqlite3-0 armhf 3.45.1-1ubuntu1 [599 kB] 78s Get:87 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtext-iconv-perl armhf 1.7-8build2 [12.7 kB] 78s Get:88 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtext-charwidth-perl armhf 0.04-11build2 [8962 B] 78s Get:89 http://ftpmaster.internal/ubuntu noble-proposed/main armhf perl-modules-5.38 all 5.38.2-3.2 [3110 kB] 78s Get:90 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdb5.3t64 armhf 5.3.28+dfsg2-6 [661 kB] 78s Get:91 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-gdbm armhf 3.12.2-3ubuntu1.1 [17.1 kB] 78s Get:92 http://ftpmaster.internal/ubuntu noble-proposed/main armhf man-db armhf 2.12.0-3build4 [1196 kB] 78s Get:93 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgdbm6t64 armhf 1.23-5.1 [30.3 kB] 78s Get:94 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgdbm-compat4t64 armhf 1.23-5.1 [6208 B] 78s Get:95 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libperl5.38t64 armhf 5.38.2-3.2 [4101 kB] 78s Get:96 http://ftpmaster.internal/ubuntu noble-proposed/main armhf perl armhf 5.38.2-3.2 [231 kB] 78s Get:97 http://ftpmaster.internal/ubuntu noble-proposed/main armhf perl-base armhf 5.38.2-3.2 [1671 kB] 78s Get:98 http://ftpmaster.internal/ubuntu noble-proposed/main armhf liblocale-gettext-perl armhf 1.07-6ubuntu4 [15.0 kB] 78s Get:99 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnettle8t64 armhf 3.9.1-2.2 [187 kB] 78s Get:100 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libhogweed6t64 armhf 3.9.1-2.2 [187 kB] 78s Get:101 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgnutls30t64 armhf 3.8.3-1.1ubuntu2 [1046 kB] 78s Get:102 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libldap2 armhf 2.6.7+dfsg-1~exp1ubuntu6 [172 kB] 78s Get:103 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcurl3t64-gnutls armhf 8.5.0-2ubuntu8 [290 kB] 79s Get:104 http://ftpmaster.internal/ubuntu noble-proposed/main armhf shared-mime-info armhf 2.4-1build1 [470 kB] 79s Get:105 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gir1.2-girepository-2.0 armhf 1.79.1-1ubuntu6 [24.8 kB] 79s Get:106 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gir1.2-glib-2.0 armhf 2.79.3-3ubuntu5 [182 kB] 79s Get:107 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgirepository-1.0-1 armhf 1.79.1-1ubuntu6 [106 kB] 79s Get:108 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-gi armhf 3.47.0-3build1 [219 kB] 79s Get:109 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-dbus armhf 1.3.2-5build2 [94.7 kB] 79s Get:110 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnetplan1 armhf 1.0-1 [113 kB] 79s Get:111 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-netplan armhf 1.0-1 [22.5 kB] 79s Get:112 http://ftpmaster.internal/ubuntu noble-proposed/main armhf netplan-generator armhf 1.0-1 [58.7 kB] 79s Get:113 http://ftpmaster.internal/ubuntu noble-proposed/main armhf initramfs-tools-bin armhf 0.142ubuntu23 [20.3 kB] 79s Get:114 http://ftpmaster.internal/ubuntu noble-proposed/main armhf initramfs-tools-core all 0.142ubuntu23 [50.1 kB] 79s Get:115 http://ftpmaster.internal/ubuntu noble-proposed/main armhf initramfs-tools all 0.142ubuntu23 [9058 B] 79s Get:116 http://ftpmaster.internal/ubuntu noble-proposed/main armhf netplan.io armhf 1.0-1 [64.3 kB] 79s Get:117 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libxmlb2 armhf 0.3.15-1build1 [57.0 kB] 79s Get:118 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libqrtr-glib0 armhf 1.2.2-1ubuntu3 [15.4 kB] 79s Get:119 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libqmi-glib5 armhf 1.35.2-0ubuntu1 [908 kB] 79s Get:120 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libqmi-proxy armhf 1.35.2-0ubuntu1 [5732 B] 79s Get:121 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpolkit-agent-1-0 armhf 124-1ubuntu1 [15.3 kB] 79s Get:122 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpolkit-gobject-1-0 armhf 124-1ubuntu1 [44.1 kB] 79s Get:123 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libglib2.0-0t64 armhf 2.79.3-3ubuntu5 [1414 kB] 79s Get:124 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libfwupd2 armhf 1.9.15-2 [123 kB] 79s Get:125 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libarchive13t64 armhf 3.7.2-1.1ubuntu2 [330 kB] 79s Get:126 http://ftpmaster.internal/ubuntu noble-proposed/main armhf fwupd armhf 1.9.15-2 [4350 kB] 79s Get:127 http://ftpmaster.internal/ubuntu noble-proposed/main armhf apt-utils armhf 2.7.14 [210 kB] 79s Get:128 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libapt-pkg6.0t64 armhf 2.7.14 [986 kB] 79s Get:129 http://ftpmaster.internal/ubuntu noble-proposed/main armhf apt armhf 2.7.14 [1368 kB] 79s Get:130 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ubuntu-pro-client-l10n armhf 31.2.2 [19.4 kB] 79s Get:131 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ubuntu-pro-client armhf 31.2.2 [216 kB] 79s Get:132 http://ftpmaster.internal/ubuntu noble-proposed/main armhf keyboxd armhf 2.4.4-2ubuntu15 [111 kB] 79s Get:133 http://ftpmaster.internal/ubuntu noble/main armhf libnpth0t64 armhf 1.6-3.1 [6940 B] 79s Get:134 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpgv armhf 2.4.4-2ubuntu15 [224 kB] 79s Get:135 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpg armhf 2.4.4-2ubuntu15 [524 kB] 79s Get:136 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpg-wks-client armhf 2.4.4-2ubuntu15 [87.4 kB] 79s Get:137 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gnupg-utils armhf 2.4.4-2ubuntu15 [158 kB] 79s Get:138 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpg-agent armhf 2.4.4-2ubuntu15 [235 kB] 79s Get:139 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpgsm armhf 2.4.4-2ubuntu15 [241 kB] 79s Get:140 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libreadline8t64 armhf 8.2-4 [129 kB] 79s Get:141 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gawk armhf 1:5.2.1-2build2 [415 kB] 79s Get:142 http://ftpmaster.internal/ubuntu noble-proposed/main armhf fdisk armhf 2.39.3-9ubuntu2 [135 kB] 79s Get:143 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpgconf armhf 2.4.4-2ubuntu15 [115 kB] 79s Get:144 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dirmngr armhf 2.4.4-2ubuntu15 [346 kB] 79s Get:145 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gnupg all 2.4.4-2ubuntu15 [359 kB] 79s Get:146 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-apt armhf 2.7.7 [162 kB] 79s Get:147 http://ftpmaster.internal/ubuntu noble-proposed/main armhf pinentry-curses armhf 1.2.1-3ubuntu4 [36.7 kB] 79s Get:148 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-yaml armhf 6.0.1-2build1 [117 kB] 79s Get:149 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python-apt-common all 2.7.7 [19.8 kB] 79s Get:150 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-setuptools all 68.1.2-2ubuntu1 [396 kB] 79s Get:151 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-pkg-resources all 68.1.2-2ubuntu1 [168 kB] 79s Get:152 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dpkg armhf 1.22.6ubuntu4 [1229 kB] 79s Get:153 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-minimal armhf 3.12.2-0ubuntu1 [27.1 kB] 79s Get:154 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3 armhf 3.12.2-0ubuntu1 [24.1 kB] 79s Get:155 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3-stdlib armhf 3.12.2-0ubuntu1 [9802 B] 79s Get:156 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsmartcols1 armhf 2.39.3-9ubuntu2 [117 kB] 79s Get:157 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bsdextrautils armhf 2.39.3-9ubuntu2 [78.7 kB] 79s Get:158 http://ftpmaster.internal/ubuntu noble-proposed/main armhf groff-base armhf 1.23.0-3build1 [946 kB] 80s Get:159 http://ftpmaster.internal/ubuntu noble-proposed/main armhf readline-common all 8.2-4 [56.4 kB] 80s Get:160 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgpgme11t64 armhf 1.18.0-4.1ubuntu3 [120 kB] 80s Get:161 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-crypto3 armhf 3.1.0-1build1 [20.3 kB] 80s Get:162 http://ftpmaster.internal/ubuntu noble-proposed/main armhf e2fsprogs-l10n all 1.47.0-2.4~exp1ubuntu2 [5996 B] 80s Get:163 http://ftpmaster.internal/ubuntu noble-proposed/main armhf logsave armhf 1.47.0-2.4~exp1ubuntu2 [21.9 kB] 80s Get:164 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dhcpcd-base armhf 1:10.0.6-1ubuntu2 [186 kB] 80s Get:165 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-fs3 armhf 3.1.0-1build1 [34.4 kB] 80s Get:166 http://ftpmaster.internal/ubuntu noble/main armhf libreiserfscore0t64 armhf 1:3.6.27-7.1 [66.2 kB] 80s Get:167 http://ftpmaster.internal/ubuntu noble-proposed/main armhf btrfs-progs armhf 6.6.3-1.1build1 [852 kB] 80s Get:168 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libext2fs2t64 armhf 1.47.0-2.4~exp1ubuntu2 [201 kB] 80s Get:169 http://ftpmaster.internal/ubuntu noble-proposed/main armhf e2fsprogs armhf 1.47.0-2.4~exp1ubuntu2 [571 kB] 80s Get:170 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-loop3 armhf 3.1.0-1build1 [6502 B] 80s Get:171 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-mdraid3 armhf 3.1.0-1build1 [13.3 kB] 80s Get:172 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-nvme3 armhf 3.1.0-1build1 [17.5 kB] 80s Get:173 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnvme1t64 armhf 1.8-3 [67.5 kB] 80s Get:174 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-part3 armhf 3.1.0-1build1 [16.4 kB] 80s Get:175 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-swap3 armhf 3.1.0-1build1 [8894 B] 80s Get:176 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev3 armhf 3.1.0-1build1 [42.9 kB] 80s Get:177 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgudev-1.0-0 armhf 1:238-3ubuntu2 [13.6 kB] 80s Get:178 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libxml2 armhf 2.9.14+dfsg-1.3ubuntu2 [595 kB] 80s Get:179 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libbpf1 armhf 1:1.3.0-2build1 [146 kB] 80s Get:180 http://ftpmaster.internal/ubuntu noble-proposed/main armhf iproute2 armhf 6.1.0-1ubuntu5 [1060 kB] 80s Get:181 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libelf1t64 armhf 0.190-1.1build2 [49.9 kB] 80s Get:182 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtirpc-common all 1.3.4+ds-1.1 [8018 B] 80s Get:183 http://ftpmaster.internal/ubuntu noble-proposed/main armhf lsof armhf 4.95.0-1build2 [248 kB] 80s Get:184 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnsl2 armhf 1.3.0-3build2 [36.5 kB] 80s Get:185 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtirpc3t64 armhf 1.3.4+ds-1.1 [73.2 kB] 80s Get:186 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmbim-proxy armhf 1.31.2-0ubuntu2 [5748 B] 80s Get:187 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmbim-glib4 armhf 1.31.2-0ubuntu2 [216 kB] 80s Get:188 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjson-glib-1.0-common all 1.8.0-2build1 [4210 B] 80s Get:189 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjson-glib-1.0-0 armhf 1.8.0-2build1 [61.2 kB] 80s Get:190 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnghttp2-14 armhf 1.59.0-1build1 [68.1 kB] 80s Get:191 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libssh-4 armhf 0.10.6-2build1 [169 kB] 80s Get:192 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libusb-1.0-0 armhf 2:1.0.27-1 [48.7 kB] 80s Get:193 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgusb2 armhf 0.4.8-1build1 [34.6 kB] 80s Get:194 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmm-glib0 armhf 1.23.4-0ubuntu1 [214 kB] 80s Get:195 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libprotobuf-c1 armhf 1.4.1-1ubuntu3 [17.7 kB] 80s Get:196 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsasl2-2 armhf 2.1.28+dfsg1-5ubuntu1 [49.7 kB] 80s Get:197 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libibverbs1 armhf 50.0-2build1 [57.9 kB] 80s Get:198 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libfido2-1 armhf 1.14.0-1build1 [75.8 kB] 80s Get:199 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libproc2-0 armhf 2:4.0.4-4ubuntu2 [49.0 kB] 80s Get:200 http://ftpmaster.internal/ubuntu noble-proposed/main armhf procps armhf 2:4.0.4-4ubuntu2 [700 kB] 80s Get:201 http://ftpmaster.internal/ubuntu noble-proposed/main armhf coreutils armhf 9.4-3ubuntu3 [1280 kB] 80s Get:202 http://ftpmaster.internal/ubuntu noble-proposed/main armhf util-linux armhf 2.39.3-9ubuntu2 [1216 kB] 80s Get:203 http://ftpmaster.internal/ubuntu noble-proposed/main armhf file armhf 1:5.45-3 [21.1 kB] 80s Get:204 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmagic-mgc armhf 1:5.45-3 [307 kB] 81s Get:205 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmagic1t64 armhf 1:5.45-3 [81.4 kB] 81s Get:206 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libplymouth5 armhf 24.004.60-1ubuntu6 [140 kB] 81s Get:207 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpng16-16t64 armhf 1.6.43-3 [166 kB] 81s Get:208 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bind9-host armhf 1:9.18.24-0ubuntu3 [47.4 kB] 81s Get:209 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bind9-dnsutils armhf 1:9.18.24-0ubuntu3 [149 kB] 81s Get:210 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bind9-libs armhf 1:9.18.24-0ubuntu3 [1148 kB] 81s Get:211 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libuv1t64 armhf 1.48.0-1.1 [82.9 kB] 81s Get:212 http://ftpmaster.internal/ubuntu noble-proposed/main armhf uuid-runtime armhf 2.39.3-9ubuntu2 [41.7 kB] 81s Get:213 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdebconfclient0 armhf 0.271ubuntu2 [10.8 kB] 81s Get:214 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsemanage-common all 3.5-1build4 [10.1 kB] 81s Get:215 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsemanage2 armhf 3.5-1build4 [84.5 kB] 81s Get:216 http://ftpmaster.internal/ubuntu noble-proposed/main armhf install-info armhf 7.1-3build1 [60.5 kB] 81s Get:217 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gcc-13-base armhf 13.2.0-21ubuntu1 [48.3 kB] 81s Get:218 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libss2 armhf 1.47.0-2.4~exp1ubuntu2 [14.7 kB] 81s Get:219 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dmsetup armhf 2:1.02.185-3ubuntu2 [81.1 kB] 81s Get:220 http://ftpmaster.internal/ubuntu noble-proposed/main armhf eject armhf 2.39.3-9ubuntu2 [43.2 kB] 81s Get:221 http://ftpmaster.internal/ubuntu noble-proposed/main armhf krb5-locales all 1.20.1-6ubuntu1 [13.8 kB] 81s Get:222 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libglib2.0-data all 2.79.3-3ubuntu5 [46.6 kB] 81s Get:223 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libslang2 armhf 2.3.3-3build1 [478 kB] 81s Get:224 http://ftpmaster.internal/ubuntu noble-proposed/main armhf rsyslog armhf 8.2312.0-3ubuntu7 [460 kB] 81s Get:225 http://ftpmaster.internal/ubuntu noble-proposed/main armhf vim-tiny armhf 2:9.1.0016-1ubuntu6 [665 kB] 81s Get:226 http://ftpmaster.internal/ubuntu noble-proposed/main armhf vim-common all 2:9.1.0016-1ubuntu6 [385 kB] 81s Get:227 http://ftpmaster.internal/ubuntu noble/main armhf xdg-user-dirs armhf 0.18-1 [17.3 kB] 81s Get:228 http://ftpmaster.internal/ubuntu noble-proposed/main armhf xxd armhf 2:9.1.0016-1ubuntu6 [62.5 kB] 81s Get:229 http://ftpmaster.internal/ubuntu noble-proposed/main armhf apparmor armhf 4.0.0-beta3-0ubuntu2 [562 kB] 81s Get:230 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ftp all 20230507-2build1 [4724 B] 81s Get:231 http://ftpmaster.internal/ubuntu noble-proposed/main armhf inetutils-telnet armhf 2:2.5-3ubuntu3 [90.7 kB] 81s Get:232 http://ftpmaster.internal/ubuntu noble-proposed/main armhf info armhf 7.1-3build1 [127 kB] 81s Get:233 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libxmuu1 armhf 2:1.1.3-3build1 [8004 B] 81s Get:234 http://ftpmaster.internal/ubuntu noble-proposed/main armhf lshw armhf 02.19.git.2021.06.19.996aaad9c7-2build2 [310 kB] 81s Get:235 http://ftpmaster.internal/ubuntu noble-proposed/main armhf mtr-tiny armhf 0.95-1.1build1 [51.7 kB] 81s Get:236 http://ftpmaster.internal/ubuntu noble-proposed/main armhf plymouth-theme-ubuntu-text armhf 24.004.60-1ubuntu6 [9818 B] 81s Get:237 http://ftpmaster.internal/ubuntu noble-proposed/main armhf plymouth armhf 24.004.60-1ubuntu6 [142 kB] 81s Get:238 http://ftpmaster.internal/ubuntu noble-proposed/main armhf psmisc armhf 23.7-1 [176 kB] 81s Get:239 http://ftpmaster.internal/ubuntu noble-proposed/main armhf telnet all 0.17+2.5-3ubuntu3 [3682 B] 81s Get:240 http://ftpmaster.internal/ubuntu noble-proposed/main armhf usb.ids all 2024.03.18-1 [223 kB] 81s Get:241 http://ftpmaster.internal/ubuntu noble-proposed/main armhf xz-utils armhf 5.6.0-0.2 [271 kB] 81s Get:242 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libctf0 armhf 2.42-4ubuntu1 [87.7 kB] 81s Get:243 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libctf-nobfd0 armhf 2.42-4ubuntu1 [88.0 kB] 81s Get:244 http://ftpmaster.internal/ubuntu noble-proposed/main armhf binutils-arm-linux-gnueabihf armhf 2.42-4ubuntu1 [2925 kB] 81s Get:245 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libbinutils armhf 2.42-4ubuntu1 [464 kB] 81s Get:246 http://ftpmaster.internal/ubuntu noble-proposed/main armhf binutils armhf 2.42-4ubuntu1 [3078 B] 81s Get:247 http://ftpmaster.internal/ubuntu noble-proposed/main armhf binutils-common armhf 2.42-4ubuntu1 [217 kB] 81s Get:248 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsframe1 armhf 2.42-4ubuntu1 [13.1 kB] 81s Get:249 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bolt armhf 0.9.6-2build1 [138 kB] 81s Get:250 http://ftpmaster.internal/ubuntu noble-proposed/main armhf cryptsetup-bin armhf 2:2.7.0-1ubuntu2 [214 kB] 81s Get:251 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dpkg-dev all 1.22.6ubuntu4 [1074 kB] 81s Get:252 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdpkg-perl all 1.22.6ubuntu4 [268 kB] 81s Get:253 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gnupg-l10n all 2.4.4-2ubuntu15 [65.8 kB] 81s Get:254 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ibverbs-providers armhf 50.0-2build1 [27.4 kB] 81s Get:255 http://ftpmaster.internal/ubuntu noble-proposed/main armhf jq armhf 1.7.1-3 [65.2 kB] 81s Get:256 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjq1 armhf 1.7.1-3 [156 kB] 81s Get:257 http://ftpmaster.internal/ubuntu noble/main armhf libatm1t64 armhf 1:2.5.1-5.1 [20.0 kB] 81s Get:258 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libevent-core-2.1-7 armhf 2.1.12-stable-9build1 [82.3 kB] 81s Get:259 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libftdi1-2 armhf 1.5-6build4 [25.7 kB] 81s Get:260 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libldap-common all 2.6.7+dfsg-1~exp1ubuntu6 [31.3 kB] 81s Get:261 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsasl2-modules armhf 2.1.28+dfsg1-5ubuntu1 [61.3 kB] 81s Get:262 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-distutils all 3.12.2-3ubuntu1.1 [133 kB] 81s Get:263 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-lib2to3 all 3.12.2-3ubuntu1.1 [79.1 kB] 81s Get:264 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-pyrsistent armhf 0.20.0-1build1 [53.0 kB] 82s Get:265 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-typing-extensions all 4.10.0-1 [60.7 kB] 82s Get:266 http://ftpmaster.internal/ubuntu noble-proposed/main armhf kpartx armhf 0.9.4-5ubuntu6 [31.5 kB] 83s Preconfiguring packages ... 83s Fetched 100 MB in 8s (12.5 MB/s) 83s (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 ... 58619 files and directories currently installed.) 83s Preparing to unpack .../bsdutils_1%3a2.39.3-9ubuntu2_armhf.deb ... 83s Unpacking bsdutils (1:2.39.3-9ubuntu2) over (1:2.39.3-6ubuntu2) ... 83s Setting up bsdutils (1:2.39.3-9ubuntu2) ... 83s (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 ... 58619 files and directories currently installed.) 83s Preparing to unpack .../0-libbrotli1_1.1.0-2build1_armhf.deb ... 83s Unpacking libbrotli1:armhf (1.1.0-2build1) over (1.1.0-2) ... 83s Preparing to unpack .../1-libgssapi-krb5-2_1.20.1-6ubuntu1_armhf.deb ... 83s Unpacking libgssapi-krb5-2:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 83s Preparing to unpack .../2-libkrb5-3_1.20.1-6ubuntu1_armhf.deb ... 83s Unpacking libkrb5-3:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 83s Preparing to unpack .../3-libkrb5support0_1.20.1-6ubuntu1_armhf.deb ... 83s Unpacking libkrb5support0:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 83s Preparing to unpack .../4-libk5crypto3_1.20.1-6ubuntu1_armhf.deb ... 83s Unpacking libk5crypto3:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 83s Preparing to unpack .../5-libcom-err2_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 83s Unpacking libcom-err2:armhf (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 83s Preparing to unpack .../6-zlib1g_1%3a1.3.dfsg-3.1ubuntu1_armhf.deb ... 83s Unpacking zlib1g:armhf (1:1.3.dfsg-3.1ubuntu1) over (1:1.3.dfsg-3ubuntu1) ... 83s Setting up zlib1g:armhf (1:1.3.dfsg-3.1ubuntu1) ... 83s (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 ... 58619 files and directories currently installed.) 83s Preparing to unpack .../librtmp1_2.4+20151223.gitfa8646d.1-2build6_armhf.deb ... 83s Unpacking librtmp1:armhf (2.4+20151223.gitfa8646d.1-2build6) over (2.4+20151223.gitfa8646d.1-2build4) ... 83s Preparing to unpack .../udisks2_2.10.1-6_armhf.deb ... 83s Unpacking udisks2 (2.10.1-6) over (2.10.1-1ubuntu2) ... 83s Preparing to unpack .../libudisks2-0_2.10.1-6_armhf.deb ... 83s Unpacking libudisks2-0:armhf (2.10.1-6) over (2.10.1-1ubuntu2) ... 84s Preparing to unpack .../libblkid1_2.39.3-9ubuntu2_armhf.deb ... 84s Unpacking libblkid1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 84s Setting up libblkid1:armhf (2.39.3-9ubuntu2) ... 84s (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 ... 58619 files and directories currently installed.) 84s Preparing to unpack .../liblzma5_5.6.0-0.2_armhf.deb ... 84s Unpacking liblzma5:armhf (5.6.0-0.2) over (5.4.5-0.3) ... 84s Setting up liblzma5:armhf (5.6.0-0.2) ... 84s (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 ... 58619 files and directories currently installed.) 84s Preparing to unpack .../0-kmod_31+20240202-2ubuntu4_armhf.deb ... 84s Unpacking kmod (31+20240202-2ubuntu4) over (30+20230601-2ubuntu1) ... 84s dpkg: warning: unable to delete old directory '/lib/modprobe.d': Directory not empty 84s Preparing to unpack .../1-libkmod2_31+20240202-2ubuntu4_armhf.deb ... 84s Unpacking libkmod2:armhf (31+20240202-2ubuntu4) over (30+20230601-2ubuntu1) ... 84s Preparing to unpack .../2-systemd-dev_255.4-1ubuntu5_all.deb ... 84s Unpacking systemd-dev (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 84s Preparing to unpack .../3-systemd-timesyncd_255.4-1ubuntu5_armhf.deb ... 84s Unpacking systemd-timesyncd (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 84s Preparing to unpack .../4-dbus-session-bus-common_1.14.10-4ubuntu2_all.deb ... 84s Unpacking dbus-session-bus-common (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 84s Preparing to unpack .../5-libaudit-common_1%3a3.1.2-2.1_all.deb ... 84s Unpacking libaudit-common (1:3.1.2-2.1) over (1:3.1.2-2) ... 84s Setting up libaudit-common (1:3.1.2-2.1) ... 84s (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 ... 58618 files and directories currently installed.) 84s Preparing to unpack .../libcap-ng0_0.8.4-2build1_armhf.deb ... 84s Unpacking libcap-ng0:armhf (0.8.4-2build1) over (0.8.4-2) ... 84s Setting up libcap-ng0:armhf (0.8.4-2build1) ... 84s (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 ... 58618 files and directories currently installed.) 84s Preparing to unpack .../libaudit1_1%3a3.1.2-2.1_armhf.deb ... 84s Unpacking libaudit1:armhf (1:3.1.2-2.1) over (1:3.1.2-2) ... 84s Setting up libaudit1:armhf (1:3.1.2-2.1) ... 84s (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 ... 58618 files and directories currently installed.) 84s Preparing to unpack .../libpam0g_1.5.3-5ubuntu3_armhf.deb ... 84s Unpacking libpam0g:armhf (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 84s Setting up libpam0g:armhf (1.5.3-5ubuntu3) ... 84s (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 ... 58618 files and directories currently installed.) 84s Preparing to unpack .../libselinux1_3.5-2ubuntu1_armhf.deb ... 84s Unpacking libselinux1:armhf (3.5-2ubuntu1) over (3.5-2build1) ... 84s Setting up libselinux1:armhf (3.5-2ubuntu1) ... 84s dpkg: libcurl4:armhf: dependency problems, but removing anyway as you requested: 84s curl depends on libcurl4 (= 8.5.0-2ubuntu2). 84s 84s (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 ... 58618 files and directories currently installed.) 84s Removing libcurl4:armhf (8.5.0-2ubuntu2) ... 84s Selecting previously unselected package libcurl4t64:armhf. 84s (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 ... 58613 files and directories currently installed.) 84s Preparing to unpack .../libcurl4t64_8.5.0-2ubuntu8_armhf.deb ... 84s Unpacking libcurl4t64:armhf (8.5.0-2ubuntu8) ... 84s Preparing to unpack .../curl_8.5.0-2ubuntu8_armhf.deb ... 84s Unpacking curl (8.5.0-2ubuntu8) over (8.5.0-2ubuntu2) ... 85s dpkg: libpsl5:armhf: dependency problems, but removing anyway as you requested: 85s wget depends on libpsl5 (>= 0.16.0). 85s libcurl3-gnutls:armhf depends on libpsl5 (>= 0.16.0). 85s 85s (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 ... 58619 files and directories currently installed.) 85s Removing libpsl5:armhf (0.21.2-1build1) ... 85s Selecting previously unselected package libpsl5t64:armhf. 85s (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 ... 58614 files and directories currently installed.) 85s Preparing to unpack .../libpsl5t64_0.21.2-1.1_armhf.deb ... 85s Unpacking libpsl5t64:armhf (0.21.2-1.1) ... 85s Preparing to unpack .../wget_1.21.4-1ubuntu2_armhf.deb ... 85s Unpacking wget (1.21.4-1ubuntu2) over (1.21.4-1ubuntu1) ... 85s Preparing to unpack .../tnftp_20230507-2build1_armhf.deb ... 85s Unpacking tnftp (20230507-2build1) over (20230507-2) ... 85s dpkg: libpcap0.8:armhf: dependency problems, but removing anyway as you requested: 85s tcpdump depends on libpcap0.8 (>= 1.9.1). 85s 85s (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 ... 58620 files and directories currently installed.) 85s Removing libpcap0.8:armhf (1.10.4-4ubuntu3) ... 85s Selecting previously unselected package libpcap0.8t64:armhf. 85s (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 ... 58609 files and directories currently installed.) 85s Preparing to unpack .../00-libpcap0.8t64_1.10.4-4.1ubuntu2_armhf.deb ... 85s Unpacking libpcap0.8t64:armhf (1.10.4-4.1ubuntu2) ... 85s Preparing to unpack .../01-tcpdump_4.99.4-3ubuntu2_armhf.deb ... 85s Unpacking tcpdump (4.99.4-3ubuntu2) over (4.99.4-3ubuntu1) ... 85s Preparing to unpack .../02-libsystemd-shared_255.4-1ubuntu5_armhf.deb ... 85s Unpacking libsystemd-shared:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 85s Preparing to unpack .../03-systemd-resolved_255.4-1ubuntu5_armhf.deb ... 85s Unpacking systemd-resolved (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 85s Preparing to unpack .../04-sudo_1.9.15p5-3ubuntu3_armhf.deb ... 85s Unpacking sudo (1.9.15p5-3ubuntu3) over (1.9.15p5-3ubuntu1) ... 85s Preparing to unpack .../05-rsync_3.2.7-1build1_armhf.deb ... 85s Unpacking rsync (3.2.7-1build1) over (3.2.7-1) ... 85s Preparing to unpack .../06-python3-cryptography_41.0.7-4build2_armhf.deb ... 86s Unpacking python3-cryptography (41.0.7-4build2) over (41.0.7-3) ... 86s Preparing to unpack .../07-openssl_3.0.13-0ubuntu2_armhf.deb ... 86s Unpacking openssl (3.0.13-0ubuntu2) over (3.0.10-1ubuntu4) ... 86s Preparing to unpack .../08-openssh-sftp-server_1%3a9.6p1-3ubuntu11_armhf.deb ... 86s Unpacking openssh-sftp-server (1:9.6p1-3ubuntu11) over (1:9.6p1-3ubuntu2) ... 86s Preparing to unpack .../09-openssh-client_1%3a9.6p1-3ubuntu11_armhf.deb ... 86s Unpacking openssh-client (1:9.6p1-3ubuntu11) over (1:9.6p1-3ubuntu2) ... 86s Preparing to unpack .../10-openssh-server_1%3a9.6p1-3ubuntu11_armhf.deb ... 86s Unpacking openssh-server (1:9.6p1-3ubuntu11) over (1:9.6p1-3ubuntu2) ... 86s Selecting previously unselected package linux-headers-6.8.0-20. 86s Preparing to unpack .../11-linux-headers-6.8.0-20_6.8.0-20.20_all.deb ... 86s Unpacking linux-headers-6.8.0-20 (6.8.0-20.20) ... 89s Selecting previously unselected package linux-headers-6.8.0-20-generic. 89s Preparing to unpack .../12-linux-headers-6.8.0-20-generic_6.8.0-20.20_armhf.deb ... 89s Unpacking linux-headers-6.8.0-20-generic (6.8.0-20.20) ... 91s Preparing to unpack .../13-linux-headers-generic_6.8.0-20.20+1_armhf.deb ... 91s Unpacking linux-headers-generic (6.8.0-20.20+1) over (6.8.0-11.11+1) ... 92s (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 ... 89772 files and directories currently installed.) 92s Removing linux-headers-6.8.0-11-generic (6.8.0-11.11) ... 92s dpkg: libssl3:armhf: dependency problems, but removing anyway as you requested: 92s systemd depends on libssl3 (>= 3.0.0). 92s libssh-4:armhf depends on libssl3 (>= 3.0.0). 92s libsasl2-modules:armhf depends on libssl3 (>= 3.0.0). 92s libsasl2-2:armhf depends on libssl3 (>= 3.0.0). 92s libpython3.12-minimal:armhf depends on libssl3 (>= 3.0.0). 92s libpython3.11-minimal:armhf depends on libssl3 (>= 3.0.0). 92s libnvme1 depends on libssl3 (>= 3.0.0). 92s libfido2-1:armhf depends on libssl3 (>= 3.0.0). 92s libcryptsetup12:armhf depends on libssl3 (>= 3.0.0). 92s dhcpcd-base depends on libssl3 (>= 3.0.0). 92s bind9-libs:armhf depends on libssl3 (>= 3.0.0). 92s 92s Removing libssl3:armhf (3.0.10-1ubuntu4) ... 92s Selecting previously unselected package libssl3t64:armhf. 92s (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 ... 78622 files and directories currently installed.) 92s Preparing to unpack .../libssl3t64_3.0.13-0ubuntu2_armhf.deb ... 92s Unpacking libssl3t64:armhf (3.0.13-0ubuntu2) ... 92s Setting up libssl3t64:armhf (3.0.13-0ubuntu2) ... 92s (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 ... 78635 files and directories currently installed.) 92s Preparing to unpack .../libnss-systemd_255.4-1ubuntu5_armhf.deb ... 92s Unpacking libnss-systemd:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 92s Preparing to unpack .../libudev1_255.4-1ubuntu5_armhf.deb ... 92s Unpacking libudev1:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 92s Setting up libudev1:armhf (255.4-1ubuntu5) ... 92s (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 ... 78635 files and directories currently installed.) 92s Preparing to unpack .../systemd_255.4-1ubuntu5_armhf.deb ... 93s Unpacking systemd (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 94s Preparing to unpack .../udev_255.4-1ubuntu5_armhf.deb ... 94s Unpacking udev (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 94s Preparing to unpack .../libsystemd0_255.4-1ubuntu5_armhf.deb ... 94s Unpacking libsystemd0:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 94s Setting up libsystemd0:armhf (255.4-1ubuntu5) ... 94s Setting up libkmod2:armhf (31+20240202-2ubuntu4) ... 94s Setting up libsystemd-shared:armhf (255.4-1ubuntu5) ... 94s Setting up systemd-dev (255.4-1ubuntu5) ... 94s Setting up systemd (255.4-1ubuntu5) ... 97s (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 ... 78635 files and directories currently installed.) 97s Preparing to unpack .../systemd-sysv_255.4-1ubuntu5_armhf.deb ... 97s Unpacking systemd-sysv (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 97s Preparing to unpack .../libpam-systemd_255.4-1ubuntu5_armhf.deb ... 97s Unpacking libpam-systemd:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 97s Preparing to unpack .../libpam-modules-bin_1.5.3-5ubuntu3_armhf.deb ... 97s Unpacking libpam-modules-bin (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 97s Setting up libpam-modules-bin (1.5.3-5ubuntu3) ... 97s pam_namespace.service is a disabled or a static unit not running, not starting it. 97s (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 ... 78635 files and directories currently installed.) 97s Preparing to unpack .../libpam-modules_1.5.3-5ubuntu3_armhf.deb ... 97s Unpacking libpam-modules:armhf (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 98s Setting up libpam-modules:armhf (1.5.3-5ubuntu3) ... 98s Installing new version of config file /etc/security/namespace.init ... 98s (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 ... 78633 files and directories currently installed.) 98s Preparing to unpack .../libpam-runtime_1.5.3-5ubuntu3_all.deb ... 98s Unpacking libpam-runtime (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 98s Setting up libpam-runtime (1.5.3-5ubuntu3) ... 98s (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 ... 78633 files and directories currently installed.) 98s Preparing to unpack .../dbus-user-session_1.14.10-4ubuntu2_armhf.deb ... 98s Unpacking dbus-user-session (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 98s Preparing to unpack .../libapparmor1_4.0.0-beta3-0ubuntu2_armhf.deb ... 98s Unpacking libapparmor1:armhf (4.0.0-beta3-0ubuntu2) over (4.0.0~alpha4-0ubuntu1) ... 99s Preparing to unpack .../gcc-14-base_14-20240315-1ubuntu1_armhf.deb ... 99s Unpacking gcc-14-base:armhf (14-20240315-1ubuntu1) over (14-20240303-1ubuntu1) ... 99s Setting up gcc-14-base:armhf (14-20240315-1ubuntu1) ... 99s (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 ... 78633 files and directories currently installed.) 99s Preparing to unpack .../libgcc-s1_14-20240315-1ubuntu1_armhf.deb ... 99s Unpacking libgcc-s1:armhf (14-20240315-1ubuntu1) over (14-20240303-1ubuntu1) ... 99s Setting up libgcc-s1:armhf (14-20240315-1ubuntu1) ... 99s (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 ... 78633 files and directories currently installed.) 99s Preparing to unpack .../libstdc++6_14-20240315-1ubuntu1_armhf.deb ... 99s Unpacking libstdc++6:armhf (14-20240315-1ubuntu1) over (14-20240303-1ubuntu1) ... 99s Setting up libstdc++6:armhf (14-20240315-1ubuntu1) ... 99s (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 ... 78633 files and directories currently installed.) 99s Preparing to unpack .../0-libexpat1_2.6.1-2_armhf.deb ... 99s Unpacking libexpat1:armhf (2.6.1-2) over (2.6.0-1) ... 99s Preparing to unpack .../1-dbus-system-bus-common_1.14.10-4ubuntu2_all.deb ... 99s Unpacking dbus-system-bus-common (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 99s Preparing to unpack .../2-dbus-bin_1.14.10-4ubuntu2_armhf.deb ... 99s Unpacking dbus-bin (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 99s Preparing to unpack .../3-dbus_1.14.10-4ubuntu2_armhf.deb ... 99s Unpacking dbus (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 99s Preparing to unpack .../4-dbus-daemon_1.14.10-4ubuntu2_armhf.deb ... 99s Unpacking dbus-daemon (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 99s Preparing to unpack .../5-libdbus-1-3_1.14.10-4ubuntu2_armhf.deb ... 99s Unpacking libdbus-1-3:armhf (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 100s Preparing to unpack .../6-libmount1_2.39.3-9ubuntu2_armhf.deb ... 100s Unpacking libmount1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 100s Setting up libmount1:armhf (2.39.3-9ubuntu2) ... 100s (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 ... 78633 files and directories currently installed.) 100s Preparing to unpack .../libseccomp2_2.5.5-1ubuntu2_armhf.deb ... 100s Unpacking libseccomp2:armhf (2.5.5-1ubuntu2) over (2.5.5-1ubuntu1) ... 100s Setting up libseccomp2:armhf (2.5.5-1ubuntu2) ... 100s (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 ... 78633 files and directories currently installed.) 100s Preparing to unpack .../libdevmapper1.02.1_2%3a1.02.185-3ubuntu2_armhf.deb ... 100s Unpacking libdevmapper1.02.1:armhf (2:1.02.185-3ubuntu2) over (2:1.02.185-3ubuntu1) ... 100s Preparing to unpack .../libuuid1_2.39.3-9ubuntu2_armhf.deb ... 100s Unpacking libuuid1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 100s Setting up libuuid1:armhf (2.39.3-9ubuntu2) ... 100s (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 ... 78633 files and directories currently installed.) 100s Preparing to unpack .../0-libcryptsetup12_2%3a2.7.0-1ubuntu2_armhf.deb ... 100s Unpacking libcryptsetup12:armhf (2:2.7.0-1ubuntu2) over (2:2.7.0-1ubuntu1) ... 100s Preparing to unpack .../1-libfdisk1_2.39.3-9ubuntu2_armhf.deb ... 100s Unpacking libfdisk1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 100s Preparing to unpack .../2-mount_2.39.3-9ubuntu2_armhf.deb ... 100s Unpacking mount (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 100s Preparing to unpack .../3-libblockdev-utils3_3.1.0-1build1_armhf.deb ... 100s Unpacking libblockdev-utils3:armhf (3.1.0-1build1) over (3.1.0-1) ... 100s Preparing to unpack .../4-libvolume-key1_0.3.12-7build1_armhf.deb ... 100s Unpacking libvolume-key1:armhf (0.3.12-7build1) over (0.3.12-5build2) ... 100s Preparing to unpack .../5-libjcat1_0.2.0-2build2_armhf.deb ... 100s Unpacking libjcat1:armhf (0.2.0-2build2) over (0.2.0-2) ... 100s (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 ... 78633 files and directories currently installed.) 100s Removing libgpgme11:armhf (1.18.0-4ubuntu1) ... 100s (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 ... 78627 files and directories currently installed.) 100s Preparing to unpack .../parted_3.6-3.1build2_armhf.deb ... 100s Unpacking parted (3.6-3.1build2) over (3.6-3) ... 101s (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 ... 78627 files and directories currently installed.) 101s Removing libparted2:armhf (3.6-3) ... 101s Selecting previously unselected package libparted2t64:armhf. 101s (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 ... 78621 files and directories currently installed.) 101s Preparing to unpack .../00-libparted2t64_3.6-3.1build2_armhf.deb ... 101s Unpacking libparted2t64:armhf (3.6-3.1build2) ... 101s Preparing to unpack .../01-python3.12_3.12.2-4build3_armhf.deb ... 101s Unpacking python3.12 (3.12.2-4build3) over (3.12.2-1) ... 101s Preparing to unpack .../02-python3.12-minimal_3.12.2-4build3_armhf.deb ... 101s Unpacking python3.12-minimal (3.12.2-4build3) over (3.12.2-1) ... 101s Preparing to unpack .../03-libpython3.12-stdlib_3.12.2-4build3_armhf.deb ... 101s Unpacking libpython3.12-stdlib:armhf (3.12.2-4build3) over (3.12.2-1) ... 102s Preparing to unpack .../04-libpython3.12-minimal_3.12.2-4build3_armhf.deb ... 102s Unpacking libpython3.12-minimal:armhf (3.12.2-4build3) over (3.12.2-1) ... 102s Preparing to unpack .../05-libsasl2-modules-db_2.1.28+dfsg1-5ubuntu1_armhf.deb ... 102s Unpacking libsasl2-modules-db:armhf (2.1.28+dfsg1-5ubuntu1) over (2.1.28+dfsg1-4) ... 102s Preparing to unpack .../06-python3.11_3.11.8-1build4_armhf.deb ... 102s Unpacking python3.11 (3.11.8-1build4) over (3.11.8-1) ... 102s Preparing to unpack .../07-python3.11-minimal_3.11.8-1build4_armhf.deb ... 102s Unpacking python3.11-minimal (3.11.8-1build4) over (3.11.8-1) ... 103s Preparing to unpack .../08-libpython3.11-stdlib_3.11.8-1build4_armhf.deb ... 103s Unpacking libpython3.11-stdlib:armhf (3.11.8-1build4) over (3.11.8-1) ... 103s Preparing to unpack .../09-libpython3.11-minimal_3.11.8-1build4_armhf.deb ... 103s Unpacking libpython3.11-minimal:armhf (3.11.8-1build4) over (3.11.8-1) ... 104s Preparing to unpack .../10-libsqlite3-0_3.45.1-1ubuntu1_armhf.deb ... 104s Unpacking libsqlite3-0:armhf (3.45.1-1ubuntu1) over (3.45.1-1) ... 104s Preparing to unpack .../11-libtext-iconv-perl_1.7-8build2_armhf.deb ... 104s Unpacking libtext-iconv-perl:armhf (1.7-8build2) over (1.7-8build1) ... 104s Preparing to unpack .../12-libtext-charwidth-perl_0.04-11build2_armhf.deb ... 104s Unpacking libtext-charwidth-perl:armhf (0.04-11build2) over (0.04-11build1) ... 104s Preparing to unpack .../13-perl-modules-5.38_5.38.2-3.2_all.deb ... 104s Unpacking perl-modules-5.38 (5.38.2-3.2) over (5.38.2-3) ... 105s dpkg: libperl5.38:armhf: dependency problems, but removing anyway as you requested: 105s perl depends on libperl5.38 (= 5.38.2-3). 105s 105s (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 ... 78624 files and directories currently installed.) 105s Removing libperl5.38:armhf (5.38.2-3) ... 105s dpkg: libdb5.3:armhf: dependency problems, but removing anyway as you requested: 105s iproute2 depends on libdb5.3. 105s apt-utils depends on libdb5.3. 105s 105s Removing libdb5.3:armhf (5.3.28+dfsg2-4) ... 105s Selecting previously unselected package libdb5.3t64:armhf. 105s (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 ... 78099 files and directories currently installed.) 105s Preparing to unpack .../libdb5.3t64_5.3.28+dfsg2-6_armhf.deb ... 105s Unpacking libdb5.3t64:armhf (5.3.28+dfsg2-6) ... 105s Preparing to unpack .../python3-gdbm_3.12.2-3ubuntu1.1_armhf.deb ... 105s Unpacking python3-gdbm:armhf (3.12.2-3ubuntu1.1) over (3.11.5-1) ... 105s Preparing to unpack .../man-db_2.12.0-3build4_armhf.deb ... 105s Unpacking man-db (2.12.0-3build4) over (2.12.0-3) ... 105s (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 ... 78105 files and directories currently installed.) 105s Removing libgdbm-compat4:armhf (1.23-5) ... 105s Removing libgdbm6:armhf (1.23-5) ... 105s Selecting previously unselected package libgdbm6t64:armhf. 105s (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 ... 78095 files and directories currently installed.) 105s Preparing to unpack .../libgdbm6t64_1.23-5.1_armhf.deb ... 105s Unpacking libgdbm6t64:armhf (1.23-5.1) ... 105s Selecting previously unselected package libgdbm-compat4t64:armhf. 105s Preparing to unpack .../libgdbm-compat4t64_1.23-5.1_armhf.deb ... 105s Unpacking libgdbm-compat4t64:armhf (1.23-5.1) ... 105s Selecting previously unselected package libperl5.38t64:armhf. 105s Preparing to unpack .../libperl5.38t64_5.38.2-3.2_armhf.deb ... 105s Unpacking libperl5.38t64:armhf (5.38.2-3.2) ... 106s Preparing to unpack .../perl_5.38.2-3.2_armhf.deb ... 106s Unpacking perl (5.38.2-3.2) over (5.38.2-3) ... 106s Preparing to unpack .../perl-base_5.38.2-3.2_armhf.deb ... 106s Unpacking perl-base (5.38.2-3.2) over (5.38.2-3) ... 106s Setting up perl-base (5.38.2-3.2) ... 106s (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 ... 78626 files and directories currently installed.) 106s Preparing to unpack .../liblocale-gettext-perl_1.07-6ubuntu4_armhf.deb ... 106s Unpacking liblocale-gettext-perl (1.07-6ubuntu4) over (1.07-6build1) ... 106s dpkg: libnettle8:armhf: dependency problems, but removing anyway as you requested: 106s libhogweed6:armhf depends on libnettle8. 106s libgnutls30:armhf depends on libnettle8 (>= 3.9~). 106s libcurl3-gnutls:armhf depends on libnettle8. 106s libarchive13:armhf depends on libnettle8. 106s 106s (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 ... 78626 files and directories currently installed.) 106s Removing libnettle8:armhf (3.9.1-2) ... 106s Selecting previously unselected package libnettle8t64:armhf. 106s (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 ... 78619 files and directories currently installed.) 106s Preparing to unpack .../libnettle8t64_3.9.1-2.2_armhf.deb ... 106s Unpacking libnettle8t64:armhf (3.9.1-2.2) ... 106s Setting up libnettle8t64:armhf (3.9.1-2.2) ... 106s dpkg: libhogweed6:armhf: dependency problems, but removing anyway as you requested: 106s libgnutls30:armhf depends on libhogweed6 (>= 3.6). 106s 106s (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 ... 78627 files and directories currently installed.) 106s Removing libhogweed6:armhf (3.9.1-2) ... 106s Selecting previously unselected package libhogweed6t64:armhf. 106s (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 ... 78622 files and directories currently installed.) 106s Preparing to unpack .../libhogweed6t64_3.9.1-2.2_armhf.deb ... 106s Unpacking libhogweed6t64:armhf (3.9.1-2.2) ... 106s Setting up libhogweed6t64:armhf (3.9.1-2.2) ... 106s dpkg: libgnutls30:armhf: dependency problems, but removing anyway as you requested: 106s libldap2:armhf depends on libgnutls30 (>= 3.8.2). 106s libcurl3-gnutls:armhf depends on libgnutls30 (>= 3.8.2). 106s fwupd depends on libgnutls30 (>= 3.7.3). 106s dirmngr depends on libgnutls30 (>= 3.8.1). 106s apt depends on libgnutls30 (>= 3.8.1). 106s 106s (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 ... 78628 files and directories currently installed.) 106s Removing libgnutls30:armhf (3.8.3-1ubuntu1) ... 106s Selecting previously unselected package libgnutls30t64:armhf. 106s (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 ... 78619 files and directories currently installed.) 106s Preparing to unpack .../libgnutls30t64_3.8.3-1.1ubuntu2_armhf.deb ... 106s Unpacking libgnutls30t64:armhf (3.8.3-1.1ubuntu2) ... 106s Setting up libgnutls30t64:armhf (3.8.3-1.1ubuntu2) ... 107s (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 ... 78647 files and directories currently installed.) 107s Preparing to unpack .../libldap2_2.6.7+dfsg-1~exp1ubuntu6_armhf.deb ... 107s Unpacking libldap2:armhf (2.6.7+dfsg-1~exp1ubuntu6) over (2.6.7+dfsg-1~exp1ubuntu1) ... 107s dpkg: libcurl3-gnutls:armhf: dependency problems, but removing anyway as you requested: 107s libfwupd2:armhf depends on libcurl3-gnutls (>= 7.63.0). 107s fwupd depends on libcurl3-gnutls (>= 7.63.0). 107s 107s (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 ... 78647 files and directories currently installed.) 107s Removing libcurl3-gnutls:armhf (8.5.0-2ubuntu2) ... 107s Selecting previously unselected package libcurl3t64-gnutls:armhf. 107s (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 ... 78640 files and directories currently installed.) 107s Preparing to unpack .../00-libcurl3t64-gnutls_8.5.0-2ubuntu8_armhf.deb ... 107s Unpacking libcurl3t64-gnutls:armhf (8.5.0-2ubuntu8) ... 107s Preparing to unpack .../01-shared-mime-info_2.4-1build1_armhf.deb ... 107s Unpacking shared-mime-info (2.4-1build1) over (2.4-1) ... 107s Preparing to unpack .../02-gir1.2-girepository-2.0_1.79.1-1ubuntu6_armhf.deb ... 107s Unpacking gir1.2-girepository-2.0:armhf (1.79.1-1ubuntu6) over (1.79.1-1) ... 107s Preparing to unpack .../03-gir1.2-glib-2.0_2.79.3-3ubuntu5_armhf.deb ... 107s Unpacking gir1.2-glib-2.0:armhf (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 107s Preparing to unpack .../04-libgirepository-1.0-1_1.79.1-1ubuntu6_armhf.deb ... 107s Unpacking libgirepository-1.0-1:armhf (1.79.1-1ubuntu6) over (1.79.1-1) ... 107s Preparing to unpack .../05-python3-gi_3.47.0-3build1_armhf.deb ... 107s Unpacking python3-gi (3.47.0-3build1) over (3.47.0-3) ... 107s Preparing to unpack .../06-python3-dbus_1.3.2-5build2_armhf.deb ... 108s Unpacking python3-dbus (1.3.2-5build2) over (1.3.2-5build1) ... 108s Selecting previously unselected package libnetplan1:armhf. 108s Preparing to unpack .../07-libnetplan1_1.0-1_armhf.deb ... 108s Unpacking libnetplan1:armhf (1.0-1) ... 108s Preparing to unpack .../08-python3-netplan_1.0-1_armhf.deb ... 108s Unpacking python3-netplan (1.0-1) over (0.107.1-3) ... 108s Preparing to unpack .../09-netplan-generator_1.0-1_armhf.deb ... 108s Adding 'diversion of /lib/systemd/system-generators/netplan to /lib/systemd/system-generators/netplan.usr-is-merged by netplan-generator' 108s Unpacking netplan-generator (1.0-1) over (0.107.1-3) ... 108s Preparing to unpack .../10-initramfs-tools-bin_0.142ubuntu23_armhf.deb ... 108s Unpacking initramfs-tools-bin (0.142ubuntu23) over (0.142ubuntu20) ... 108s Preparing to unpack .../11-initramfs-tools-core_0.142ubuntu23_all.deb ... 108s Unpacking initramfs-tools-core (0.142ubuntu23) over (0.142ubuntu20) ... 108s Preparing to unpack .../12-initramfs-tools_0.142ubuntu23_all.deb ... 108s Unpacking initramfs-tools (0.142ubuntu23) over (0.142ubuntu20) ... 108s Preparing to unpack .../13-netplan.io_1.0-1_armhf.deb ... 108s Unpacking netplan.io (1.0-1) over (0.107.1-3) ... 108s Preparing to unpack .../14-libxmlb2_0.3.15-1build1_armhf.deb ... 108s Unpacking libxmlb2:armhf (0.3.15-1build1) over (0.3.15-1) ... 108s Preparing to unpack .../15-libqrtr-glib0_1.2.2-1ubuntu3_armhf.deb ... 108s Unpacking libqrtr-glib0:armhf (1.2.2-1ubuntu3) over (1.2.2-1ubuntu2) ... 108s Preparing to unpack .../16-libqmi-glib5_1.35.2-0ubuntu1_armhf.deb ... 108s Unpacking libqmi-glib5:armhf (1.35.2-0ubuntu1) over (1.34.0-2) ... 108s Preparing to unpack .../17-libqmi-proxy_1.35.2-0ubuntu1_armhf.deb ... 108s Unpacking libqmi-proxy (1.35.2-0ubuntu1) over (1.34.0-2) ... 108s Preparing to unpack .../18-libpolkit-agent-1-0_124-1ubuntu1_armhf.deb ... 108s Unpacking libpolkit-agent-1-0:armhf (124-1ubuntu1) over (124-1) ... 108s Preparing to unpack .../19-libpolkit-gobject-1-0_124-1ubuntu1_armhf.deb ... 108s Unpacking libpolkit-gobject-1-0:armhf (124-1ubuntu1) over (124-1) ... 108s (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 ... 78651 files and directories currently installed.) 108s Removing libnetplan0:armhf (0.107.1-3) ... 108s dpkg: libglib2.0-0:armhf: dependency problems, but removing anyway as you requested: 108s libmm-glib0:armhf depends on libglib2.0-0 (>= 2.62.0). 108s libmbim-proxy depends on libglib2.0-0 (>= 2.56). 108s libmbim-glib4:armhf depends on libglib2.0-0 (>= 2.56). 108s libjson-glib-1.0-0:armhf depends on libglib2.0-0 (>= 2.75.3). 108s libgusb2:armhf depends on libglib2.0-0 (>= 2.75.3). 108s libgudev-1.0-0:armhf depends on libglib2.0-0 (>= 2.38.0). 108s libfwupd2:armhf depends on libglib2.0-0 (>= 2.79.0). 108s libblockdev3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s libblockdev-swap3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s libblockdev-part3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s libblockdev-nvme3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s libblockdev-mdraid3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s libblockdev-loop3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s libblockdev-fs3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s libblockdev-crypto3:armhf depends on libglib2.0-0 (>= 2.42.2). 108s fwupd depends on libglib2.0-0 (>= 2.79.0). 108s bolt depends on libglib2.0-0 (>= 2.56.0). 108s 108s Removing libglib2.0-0:armhf (2.79.2-1~ubuntu1) ... 108s Selecting previously unselected package libglib2.0-0t64:armhf. 108s (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 ... 78622 files and directories currently installed.) 108s Preparing to unpack .../libglib2.0-0t64_2.79.3-3ubuntu5_armhf.deb ... 108s libglib2.0-0t64.preinst: Removing /var/lib/dpkg/info/libglib2.0-0:armhf.postrm to avoid loss of /usr/share/glib-2.0/schemas/gschemas.compiled... 108s removed '/var/lib/dpkg/info/libglib2.0-0:armhf.postrm' 108s Unpacking libglib2.0-0t64:armhf (2.79.3-3ubuntu5) ... 108s Preparing to unpack .../libfwupd2_1.9.15-2_armhf.deb ... 108s Unpacking libfwupd2:armhf (1.9.15-2) over (1.9.14-1) ... 109s dpkg: libarchive13:armhf: dependency problems, but removing anyway as you requested: 109s fwupd depends on libarchive13 (>= 3.2.1). 109s 109s (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 ... 78647 files and directories currently installed.) 109s Removing libarchive13:armhf (3.7.2-1ubuntu2) ... 109s Selecting previously unselected package libarchive13t64:armhf. 109s (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 ... 78641 files and directories currently installed.) 109s Preparing to unpack .../libarchive13t64_3.7.2-1.1ubuntu2_armhf.deb ... 109s Unpacking libarchive13t64:armhf (3.7.2-1.1ubuntu2) ... 109s Preparing to unpack .../fwupd_1.9.15-2_armhf.deb ... 109s Unpacking fwupd (1.9.15-2) over (1.9.14-1) ... 109s Preparing to unpack .../apt-utils_2.7.14_armhf.deb ... 109s Unpacking apt-utils (2.7.14) over (2.7.12) ... 109s dpkg: libapt-pkg6.0:armhf: dependency problems, but removing anyway as you requested: 109s ubuntu-pro-client depends on libapt-pkg6.0 (>= 1.9~). 109s python3-apt depends on libapt-pkg6.0 (>= 2.7.11). 109s apt depends on libapt-pkg6.0 (>= 2.7.12). 109s 109s (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 ... 78648 files and directories currently installed.) 109s Removing libapt-pkg6.0:armhf (2.7.12) ... 109s Selecting previously unselected package libapt-pkg6.0t64:armhf. 109s (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 ... 78599 files and directories currently installed.) 109s Preparing to unpack .../libapt-pkg6.0t64_2.7.14_armhf.deb ... 109s Unpacking libapt-pkg6.0t64:armhf (2.7.14) ... 109s Setting up libapt-pkg6.0t64:armhf (2.7.14) ... 109s (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 ... 78649 files and directories currently installed.) 109s Preparing to unpack .../archives/apt_2.7.14_armhf.deb ... 109s Unpacking apt (2.7.14) over (2.7.12) ... 109s Setting up apt (2.7.14) ... 111s (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 ... 78649 files and directories currently installed.) 111s Preparing to unpack .../ubuntu-pro-client-l10n_31.2.2_armhf.deb ... 111s Unpacking ubuntu-pro-client-l10n (31.2.2) over (31.1) ... 111s Preparing to unpack .../ubuntu-pro-client_31.2.2_armhf.deb ... 111s Unpacking ubuntu-pro-client (31.2.2) over (31.1) ... 111s Preparing to unpack .../keyboxd_2.4.4-2ubuntu15_armhf.deb ... 111s Unpacking keyboxd (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 111s dpkg: libnpth0:armhf: dependency problems, but removing anyway as you requested: 111s gpgv depends on libnpth0 (>= 0.90). 111s gpgsm depends on libnpth0 (>= 0.90). 111s gpg-agent depends on libnpth0 (>= 0.90). 111s gpg depends on libnpth0 (>= 0.90). 111s dirmngr depends on libnpth0 (>= 0.90). 111s 111s (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 ... 78649 files and directories currently installed.) 111s Removing libnpth0:armhf (1.6-3build2) ... 111s Selecting previously unselected package libnpth0t64:armhf. 111s (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 ... 78644 files and directories currently installed.) 111s Preparing to unpack .../libnpth0t64_1.6-3.1_armhf.deb ... 111s Unpacking libnpth0t64:armhf (1.6-3.1) ... 112s Setting up libnpth0t64:armhf (1.6-3.1) ... 112s (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 ... 78650 files and directories currently installed.) 112s Preparing to unpack .../gpgv_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking gpgv (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Setting up gpgv (2.4.4-2ubuntu15) ... 112s (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 ... 78650 files and directories currently installed.) 112s Preparing to unpack .../gpg_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking gpg (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Preparing to unpack .../gpg-wks-client_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking gpg-wks-client (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Preparing to unpack .../gnupg-utils_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking gnupg-utils (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Preparing to unpack .../gpg-agent_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking gpg-agent (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Preparing to unpack .../gpgsm_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking gpgsm (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s dpkg: libreadline8:armhf: dependency problems, but removing anyway as you requested: 112s gpgconf depends on libreadline8 (>= 6.0). 112s gawk depends on libreadline8 (>= 6.0). 112s fdisk depends on libreadline8 (>= 6.0). 112s 112s (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 ... 78650 files and directories currently installed.) 112s Removing libreadline8:armhf (8.2-3) ... 112s Selecting previously unselected package libreadline8t64:armhf. 112s (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 ... 78638 files and directories currently installed.) 112s Preparing to unpack .../libreadline8t64_8.2-4_armhf.deb ... 112s Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8 to /lib/arm-linux-gnueabihf/libhistory.so.8.usr-is-merged by libreadline8t64' 112s Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8.2 to /lib/arm-linux-gnueabihf/libhistory.so.8.2.usr-is-merged by libreadline8t64' 112s Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8 to /lib/arm-linux-gnueabihf/libreadline.so.8.usr-is-merged by libreadline8t64' 112s Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8.2 to /lib/arm-linux-gnueabihf/libreadline.so.8.2.usr-is-merged by libreadline8t64' 112s Unpacking libreadline8t64:armhf (8.2-4) ... 112s Setting up libreadline8t64:armhf (8.2-4) ... 112s (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 ... 78658 files and directories currently installed.) 112s Preparing to unpack .../00-gawk_1%3a5.2.1-2build2_armhf.deb ... 112s Unpacking gawk (1:5.2.1-2build2) over (1:5.2.1-2) ... 112s Preparing to unpack .../01-fdisk_2.39.3-9ubuntu2_armhf.deb ... 112s Unpacking fdisk (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 112s Preparing to unpack .../02-gpgconf_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking gpgconf (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Preparing to unpack .../03-dirmngr_2.4.4-2ubuntu15_armhf.deb ... 112s Unpacking dirmngr (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Preparing to unpack .../04-gnupg_2.4.4-2ubuntu15_all.deb ... 112s Unpacking gnupg (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 112s Preparing to unpack .../05-python3-apt_2.7.7_armhf.deb ... 113s Unpacking python3-apt (2.7.7) over (2.7.6) ... 113s Preparing to unpack .../06-pinentry-curses_1.2.1-3ubuntu4_armhf.deb ... 113s Unpacking pinentry-curses (1.2.1-3ubuntu4) over (1.2.1-3ubuntu1) ... 113s Preparing to unpack .../07-python3-yaml_6.0.1-2build1_armhf.deb ... 113s Unpacking python3-yaml (6.0.1-2build1) over (6.0.1-2) ... 113s Preparing to unpack .../08-python-apt-common_2.7.7_all.deb ... 113s Unpacking python-apt-common (2.7.7) over (2.7.6) ... 113s Preparing to unpack .../09-python3-setuptools_68.1.2-2ubuntu1_all.deb ... 113s Unpacking python3-setuptools (68.1.2-2ubuntu1) over (68.1.2-2) ... 113s Preparing to unpack .../10-python3-pkg-resources_68.1.2-2ubuntu1_all.deb ... 113s Unpacking python3-pkg-resources (68.1.2-2ubuntu1) over (68.1.2-2) ... 113s Preparing to unpack .../11-dpkg_1.22.6ubuntu4_armhf.deb ... 113s Unpacking dpkg (1.22.6ubuntu4) over (1.22.4ubuntu5) ... 113s Setting up dpkg (1.22.6ubuntu4) ... 114s Setting up libpython3.12-minimal:armhf (3.12.2-4build3) ... 114s Setting up libexpat1:armhf (2.6.1-2) ... 114s Setting up python3.12-minimal (3.12.2-4build3) ... 115s (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 ... 78655 files and directories currently installed.) 115s Preparing to unpack .../python3-minimal_3.12.2-0ubuntu1_armhf.deb ... 115s Unpacking python3-minimal (3.12.2-0ubuntu1) over (3.12.1-0ubuntu2) ... 115s Setting up python3-minimal (3.12.2-0ubuntu1) ... 115s (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 ... 78655 files and directories currently installed.) 115s Preparing to unpack .../python3_3.12.2-0ubuntu1_armhf.deb ... 115s Unpacking python3 (3.12.2-0ubuntu1) over (3.12.1-0ubuntu2) ... 115s Preparing to unpack .../libpython3-stdlib_3.12.2-0ubuntu1_armhf.deb ... 115s Unpacking libpython3-stdlib:armhf (3.12.2-0ubuntu1) over (3.12.1-0ubuntu2) ... 115s Preparing to unpack .../libsmartcols1_2.39.3-9ubuntu2_armhf.deb ... 115s Unpacking libsmartcols1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 115s Setting up libsmartcols1:armhf (2.39.3-9ubuntu2) ... 115s (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 ... 78655 files and directories currently installed.) 115s Preparing to unpack .../0-bsdextrautils_2.39.3-9ubuntu2_armhf.deb ... 115s Unpacking bsdextrautils (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 115s Preparing to unpack .../1-groff-base_1.23.0-3build1_armhf.deb ... 115s Unpacking groff-base (1.23.0-3build1) over (1.23.0-3) ... 115s Preparing to unpack .../2-readline-common_8.2-4_all.deb ... 115s Unpacking readline-common (8.2-4) over (8.2-3) ... 115s Selecting previously unselected package libgpgme11t64:armhf. 116s Preparing to unpack .../3-libgpgme11t64_1.18.0-4.1ubuntu3_armhf.deb ... 116s Unpacking libgpgme11t64:armhf (1.18.0-4.1ubuntu3) ... 116s Preparing to unpack .../4-libblockdev-crypto3_3.1.0-1build1_armhf.deb ... 116s Unpacking libblockdev-crypto3:armhf (3.1.0-1build1) over (3.1.0-1) ... 116s Preparing to unpack .../5-e2fsprogs-l10n_1.47.0-2.4~exp1ubuntu2_all.deb ... 116s Unpacking e2fsprogs-l10n (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 116s Preparing to unpack .../6-logsave_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 116s Unpacking logsave (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 116s Preparing to unpack .../7-dhcpcd-base_1%3a10.0.6-1ubuntu2_armhf.deb ... 116s Unpacking dhcpcd-base (1:10.0.6-1ubuntu2) over (1:10.0.6-1ubuntu1) ... 116s Preparing to unpack .../8-libblockdev-fs3_3.1.0-1build1_armhf.deb ... 116s Unpacking libblockdev-fs3:armhf (3.1.0-1build1) over (3.1.0-1) ... 116s dpkg: libreiserfscore0: dependency problems, but removing anyway as you requested: 116s btrfs-progs depends on libreiserfscore0 (>= 1:3.6.27). 116s 116s (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 ... 78662 files and directories currently installed.) 116s Removing libreiserfscore0 (1:3.6.27-7) ... 116s Selecting previously unselected package libreiserfscore0t64. 116s (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 ... 78657 files and directories currently installed.) 116s Preparing to unpack .../libreiserfscore0t64_1%3a3.6.27-7.1_armhf.deb ... 116s Unpacking libreiserfscore0t64 (1:3.6.27-7.1) ... 116s Preparing to unpack .../btrfs-progs_6.6.3-1.1build1_armhf.deb ... 116s Unpacking btrfs-progs (6.6.3-1.1build1) over (6.6.3-1.1) ... 116s dpkg: libext2fs2:armhf: dependency problems, but removing anyway as you requested: 116s e2fsprogs depends on libext2fs2 (= 1.47.0-2ubuntu1). 116s 116s (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 ... 78663 files and directories currently installed.) 116s Removing libext2fs2:armhf (1.47.0-2ubuntu1) ... 116s Selecting previously unselected package libext2fs2t64:armhf. 116s (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 ... 78656 files and directories currently installed.) 116s Preparing to unpack .../libext2fs2t64_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 116s Adding 'diversion of /lib/arm-linux-gnueabihf/libe2p.so.2 to /lib/arm-linux-gnueabihf/libe2p.so.2.usr-is-merged by libext2fs2t64' 116s Adding 'diversion of /lib/arm-linux-gnueabihf/libe2p.so.2.3 to /lib/arm-linux-gnueabihf/libe2p.so.2.3.usr-is-merged by libext2fs2t64' 116s Adding 'diversion of /lib/arm-linux-gnueabihf/libext2fs.so.2 to /lib/arm-linux-gnueabihf/libext2fs.so.2.usr-is-merged by libext2fs2t64' 116s Adding 'diversion of /lib/arm-linux-gnueabihf/libext2fs.so.2.4 to /lib/arm-linux-gnueabihf/libext2fs.so.2.4.usr-is-merged by libext2fs2t64' 116s Unpacking libext2fs2t64:armhf (1.47.0-2.4~exp1ubuntu2) ... 116s Setting up libcom-err2:armhf (1.47.0-2.4~exp1ubuntu2) ... 116s Setting up libext2fs2t64:armhf (1.47.0-2.4~exp1ubuntu2) ... 116s (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 ... 78672 files and directories currently installed.) 116s Preparing to unpack .../e2fsprogs_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 116s Unpacking e2fsprogs (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 116s Preparing to unpack .../libblockdev-loop3_3.1.0-1build1_armhf.deb ... 116s Unpacking libblockdev-loop3:armhf (3.1.0-1build1) over (3.1.0-1) ... 116s Preparing to unpack .../libblockdev-mdraid3_3.1.0-1build1_armhf.deb ... 116s Unpacking libblockdev-mdraid3:armhf (3.1.0-1build1) over (3.1.0-1) ... 116s Preparing to unpack .../libblockdev-nvme3_3.1.0-1build1_armhf.deb ... 116s Unpacking libblockdev-nvme3:armhf (3.1.0-1build1) over (3.1.0-1) ... 116s (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 ... 78672 files and directories currently installed.) 116s Removing libnvme1 (1.8-2) ... 116s Selecting previously unselected package libnvme1t64. 116s (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 ... 78665 files and directories currently installed.) 116s Preparing to unpack .../0-libnvme1t64_1.8-3_armhf.deb ... 116s Unpacking libnvme1t64 (1.8-3) ... 116s Preparing to unpack .../1-libblockdev-part3_3.1.0-1build1_armhf.deb ... 116s Unpacking libblockdev-part3:armhf (3.1.0-1build1) over (3.1.0-1) ... 116s Preparing to unpack .../2-libblockdev-swap3_3.1.0-1build1_armhf.deb ... 116s Unpacking libblockdev-swap3:armhf (3.1.0-1build1) over (3.1.0-1) ... 117s Preparing to unpack .../3-libblockdev3_3.1.0-1build1_armhf.deb ... 117s Unpacking libblockdev3:armhf (3.1.0-1build1) over (3.1.0-1) ... 117s Preparing to unpack .../4-libgudev-1.0-0_1%3a238-3ubuntu2_armhf.deb ... 117s Unpacking libgudev-1.0-0:armhf (1:238-3ubuntu2) over (1:238-3) ... 117s Preparing to unpack .../5-libxml2_2.9.14+dfsg-1.3ubuntu2_armhf.deb ... 117s Unpacking libxml2:armhf (2.9.14+dfsg-1.3ubuntu2) over (2.9.14+dfsg-1.3ubuntu1) ... 117s Preparing to unpack .../6-libbpf1_1%3a1.3.0-2build1_armhf.deb ... 117s Unpacking libbpf1:armhf (1:1.3.0-2build1) over (1:1.3.0-2) ... 117s Preparing to unpack .../7-iproute2_6.1.0-1ubuntu5_armhf.deb ... 117s Unpacking iproute2 (6.1.0-1ubuntu5) over (6.1.0-1ubuntu2) ... 117s (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 ... 78673 files and directories currently installed.) 117s Removing libelf1:armhf (0.190-1) ... 117s Selecting previously unselected package libelf1t64:armhf. 117s (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 ... 78668 files and directories currently installed.) 117s Preparing to unpack .../libelf1t64_0.190-1.1build2_armhf.deb ... 117s Unpacking libelf1t64:armhf (0.190-1.1build2) ... 117s Preparing to unpack .../libtirpc-common_1.3.4+ds-1.1_all.deb ... 117s Unpacking libtirpc-common (1.3.4+ds-1.1) over (1.3.4+ds-1build1) ... 117s Preparing to unpack .../lsof_4.95.0-1build2_armhf.deb ... 117s Unpacking lsof (4.95.0-1build2) over (4.95.0-1build1) ... 117s Preparing to unpack .../libnsl2_1.3.0-3build2_armhf.deb ... 117s Unpacking libnsl2:armhf (1.3.0-3build2) over (1.3.0-3) ... 117s (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 ... 78673 files and directories currently installed.) 117s Removing libtirpc3:armhf (1.3.4+ds-1build1) ... 117s Selecting previously unselected package libtirpc3t64:armhf. 117s (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 ... 78667 files and directories currently installed.) 117s Preparing to unpack .../00-libtirpc3t64_1.3.4+ds-1.1_armhf.deb ... 117s Adding 'diversion of /lib/arm-linux-gnueabihf/libtirpc.so.3 to /lib/arm-linux-gnueabihf/libtirpc.so.3.usr-is-merged by libtirpc3t64' 117s Adding 'diversion of /lib/arm-linux-gnueabihf/libtirpc.so.3.0.0 to /lib/arm-linux-gnueabihf/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' 117s Unpacking libtirpc3t64:armhf (1.3.4+ds-1.1) ... 117s Preparing to unpack .../01-libmbim-proxy_1.31.2-0ubuntu2_armhf.deb ... 117s Unpacking libmbim-proxy (1.31.2-0ubuntu2) over (1.30.0-1) ... 117s Preparing to unpack .../02-libmbim-glib4_1.31.2-0ubuntu2_armhf.deb ... 117s Unpacking libmbim-glib4:armhf (1.31.2-0ubuntu2) over (1.30.0-1) ... 117s Preparing to unpack .../03-libjson-glib-1.0-common_1.8.0-2build1_all.deb ... 117s Unpacking libjson-glib-1.0-common (1.8.0-2build1) over (1.8.0-2) ... 117s Preparing to unpack .../04-libjson-glib-1.0-0_1.8.0-2build1_armhf.deb ... 117s Unpacking libjson-glib-1.0-0:armhf (1.8.0-2build1) over (1.8.0-2) ... 117s Preparing to unpack .../05-libnghttp2-14_1.59.0-1build1_armhf.deb ... 117s Unpacking libnghttp2-14:armhf (1.59.0-1build1) over (1.59.0-1) ... 117s Preparing to unpack .../06-libssh-4_0.10.6-2build1_armhf.deb ... 117s Unpacking libssh-4:armhf (0.10.6-2build1) over (0.10.6-2) ... 117s Preparing to unpack .../07-libusb-1.0-0_2%3a1.0.27-1_armhf.deb ... 117s Unpacking libusb-1.0-0:armhf (2:1.0.27-1) over (2:1.0.26-1) ... 117s Preparing to unpack .../08-libgusb2_0.4.8-1build1_armhf.deb ... 117s Unpacking libgusb2:armhf (0.4.8-1build1) over (0.4.8-1) ... 117s Preparing to unpack .../09-libmm-glib0_1.23.4-0ubuntu1_armhf.deb ... 117s Unpacking libmm-glib0:armhf (1.23.4-0ubuntu1) over (1.22.0-3) ... 117s Preparing to unpack .../10-libprotobuf-c1_1.4.1-1ubuntu3_armhf.deb ... 117s Unpacking libprotobuf-c1:armhf (1.4.1-1ubuntu3) over (1.4.1-1ubuntu2) ... 117s Preparing to unpack .../11-libsasl2-2_2.1.28+dfsg1-5ubuntu1_armhf.deb ... 117s Unpacking libsasl2-2:armhf (2.1.28+dfsg1-5ubuntu1) over (2.1.28+dfsg1-4) ... 117s Preparing to unpack .../12-libibverbs1_50.0-2build1_armhf.deb ... 117s Unpacking libibverbs1:armhf (50.0-2build1) over (50.0-2) ... 117s Preparing to unpack .../13-libfido2-1_1.14.0-1build1_armhf.deb ... 117s Unpacking libfido2-1:armhf (1.14.0-1build1) over (1.14.0-1) ... 117s Preparing to unpack .../14-libproc2-0_2%3a4.0.4-4ubuntu2_armhf.deb ... 117s Unpacking libproc2-0:armhf (2:4.0.4-4ubuntu2) over (2:4.0.4-4ubuntu1) ... 118s Preparing to unpack .../15-procps_2%3a4.0.4-4ubuntu2_armhf.deb ... 118s Unpacking procps (2:4.0.4-4ubuntu2) over (2:4.0.4-4ubuntu1) ... 118s Preparing to unpack .../16-coreutils_9.4-3ubuntu3_armhf.deb ... 118s Unpacking coreutils (9.4-3ubuntu3) over (9.4-2ubuntu4) ... 118s Setting up coreutils (9.4-3ubuntu3) ... 118s (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 ... 78679 files and directories currently installed.) 118s Preparing to unpack .../util-linux_2.39.3-9ubuntu2_armhf.deb ... 118s Unpacking util-linux (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 118s Setting up util-linux (2.39.3-9ubuntu2) ... 119s fstrim.service is a disabled or a static unit not running, not starting it. 119s (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 ... 78679 files and directories currently installed.) 119s Removing libatm1:armhf (1:2.5.1-5) ... 119s (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 ... 78674 files and directories currently installed.) 119s Preparing to unpack .../file_1%3a5.45-3_armhf.deb ... 119s Unpacking file (1:5.45-3) over (1:5.45-2) ... 119s (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 ... 78674 files and directories currently installed.) 119s Removing libmagic1:armhf (1:5.45-2) ... 119s (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 ... 78664 files and directories currently installed.) 119s Preparing to unpack .../libmagic-mgc_1%3a5.45-3_armhf.deb ... 119s Unpacking libmagic-mgc (1:5.45-3) over (1:5.45-2) ... 119s Selecting previously unselected package libmagic1t64:armhf. 119s Preparing to unpack .../libmagic1t64_1%3a5.45-3_armhf.deb ... 119s Unpacking libmagic1t64:armhf (1:5.45-3) ... 119s Preparing to unpack .../libplymouth5_24.004.60-1ubuntu6_armhf.deb ... 119s Unpacking libplymouth5:armhf (24.004.60-1ubuntu6) over (24.004.60-1ubuntu3) ... 119s (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 ... 78675 files and directories currently installed.) 119s Removing libpng16-16:armhf (1.6.43-1) ... 119s Selecting previously unselected package libpng16-16t64:armhf. 119s (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 ... 78665 files and directories currently installed.) 119s Preparing to unpack .../libpng16-16t64_1.6.43-3_armhf.deb ... 119s Unpacking libpng16-16t64:armhf (1.6.43-3) ... 119s Preparing to unpack .../bind9-host_1%3a9.18.24-0ubuntu3_armhf.deb ... 119s Unpacking bind9-host (1:9.18.24-0ubuntu3) over (1:9.18.21-0ubuntu1) ... 119s Preparing to unpack .../bind9-dnsutils_1%3a9.18.24-0ubuntu3_armhf.deb ... 119s Unpacking bind9-dnsutils (1:9.18.24-0ubuntu3) over (1:9.18.21-0ubuntu1) ... 119s Preparing to unpack .../bind9-libs_1%3a9.18.24-0ubuntu3_armhf.deb ... 119s Unpacking bind9-libs:armhf (1:9.18.24-0ubuntu3) over (1:9.18.21-0ubuntu1) ... 119s (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 ... 78676 files and directories currently installed.) 119s Removing libuv1:armhf (1.48.0-1) ... 120s Selecting previously unselected package libuv1t64:armhf. 120s (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 ... 78671 files and directories currently installed.) 120s Preparing to unpack .../libuv1t64_1.48.0-1.1_armhf.deb ... 120s Unpacking libuv1t64:armhf (1.48.0-1.1) ... 120s Preparing to unpack .../uuid-runtime_2.39.3-9ubuntu2_armhf.deb ... 120s Unpacking uuid-runtime (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 120s Preparing to unpack .../libdebconfclient0_0.271ubuntu2_armhf.deb ... 120s Unpacking libdebconfclient0:armhf (0.271ubuntu2) over (0.271ubuntu1) ... 120s Setting up libdebconfclient0:armhf (0.271ubuntu2) ... 120s (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 ... 78677 files and directories currently installed.) 120s Preparing to unpack .../libsemanage-common_3.5-1build4_all.deb ... 120s Unpacking libsemanage-common (3.5-1build4) over (3.5-1build2) ... 120s Setting up libsemanage-common (3.5-1build4) ... 120s (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 ... 78677 files and directories currently installed.) 120s Preparing to unpack .../libsemanage2_3.5-1build4_armhf.deb ... 120s Unpacking libsemanage2:armhf (3.5-1build4) over (3.5-1build2) ... 120s Setting up libsemanage2:armhf (3.5-1build4) ... 120s (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 ... 78677 files and directories currently installed.) 120s Preparing to unpack .../install-info_7.1-3build1_armhf.deb ... 120s Unpacking install-info (7.1-3build1) over (7.1-3) ... 120s Setting up install-info (7.1-3build1) ... 120s (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 ... 78677 files and directories currently installed.) 120s Preparing to unpack .../00-gcc-13-base_13.2.0-21ubuntu1_armhf.deb ... 120s Unpacking gcc-13-base:armhf (13.2.0-21ubuntu1) over (13.2.0-17ubuntu2) ... 120s Preparing to unpack .../01-libss2_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 120s Unpacking libss2:armhf (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 120s Preparing to unpack .../02-dmsetup_2%3a1.02.185-3ubuntu2_armhf.deb ... 120s Unpacking dmsetup (2:1.02.185-3ubuntu2) over (2:1.02.185-3ubuntu1) ... 120s Preparing to unpack .../03-eject_2.39.3-9ubuntu2_armhf.deb ... 120s Unpacking eject (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 120s Preparing to unpack .../04-krb5-locales_1.20.1-6ubuntu1_all.deb ... 120s Unpacking krb5-locales (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 120s Preparing to unpack .../05-libglib2.0-data_2.79.3-3ubuntu5_all.deb ... 120s Unpacking libglib2.0-data (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 120s Preparing to unpack .../06-libslang2_2.3.3-3build1_armhf.deb ... 120s Unpacking libslang2:armhf (2.3.3-3build1) over (2.3.3-3) ... 120s Preparing to unpack .../07-rsyslog_8.2312.0-3ubuntu7_armhf.deb ... 120s Unpacking rsyslog (8.2312.0-3ubuntu7) over (8.2312.0-3ubuntu3) ... 120s Preparing to unpack .../08-vim-tiny_2%3a9.1.0016-1ubuntu6_armhf.deb ... 120s Unpacking vim-tiny (2:9.1.0016-1ubuntu6) over (2:9.1.0016-1ubuntu2) ... 120s Preparing to unpack .../09-vim-common_2%3a9.1.0016-1ubuntu6_all.deb ... 120s Unpacking vim-common (2:9.1.0016-1ubuntu6) over (2:9.1.0016-1ubuntu2) ... 121s Selecting previously unselected package xdg-user-dirs. 121s Preparing to unpack .../10-xdg-user-dirs_0.18-1_armhf.deb ... 121s Unpacking xdg-user-dirs (0.18-1) ... 121s Preparing to unpack .../11-xxd_2%3a9.1.0016-1ubuntu6_armhf.deb ... 121s Unpacking xxd (2:9.1.0016-1ubuntu6) over (2:9.1.0016-1ubuntu2) ... 121s Preparing to unpack .../12-apparmor_4.0.0-beta3-0ubuntu2_armhf.deb ... 121s Unpacking apparmor (4.0.0-beta3-0ubuntu2) over (4.0.0~alpha4-0ubuntu1) ... 121s Preparing to unpack .../13-ftp_20230507-2build1_all.deb ... 121s Unpacking ftp (20230507-2build1) over (20230507-2) ... 122s Preparing to unpack .../14-inetutils-telnet_2%3a2.5-3ubuntu3_armhf.deb ... 122s Unpacking inetutils-telnet (2:2.5-3ubuntu3) over (2:2.5-3ubuntu1) ... 122s Preparing to unpack .../15-info_7.1-3build1_armhf.deb ... 122s Unpacking info (7.1-3build1) over (7.1-3) ... 122s Preparing to unpack .../16-libxmuu1_2%3a1.1.3-3build1_armhf.deb ... 122s Unpacking libxmuu1:armhf (2:1.1.3-3build1) over (2:1.1.3-3) ... 122s Preparing to unpack .../17-lshw_02.19.git.2021.06.19.996aaad9c7-2build2_armhf.deb ... 122s Unpacking lshw (02.19.git.2021.06.19.996aaad9c7-2build2) over (02.19.git.2021.06.19.996aaad9c7-2build1) ... 122s Preparing to unpack .../18-mtr-tiny_0.95-1.1build1_armhf.deb ... 122s Unpacking mtr-tiny (0.95-1.1build1) over (0.95-1.1) ... 122s Preparing to unpack .../19-plymouth-theme-ubuntu-text_24.004.60-1ubuntu6_armhf.deb ... 122s Unpacking plymouth-theme-ubuntu-text (24.004.60-1ubuntu6) over (24.004.60-1ubuntu3) ... 122s Preparing to unpack .../20-plymouth_24.004.60-1ubuntu6_armhf.deb ... 122s Unpacking plymouth (24.004.60-1ubuntu6) over (24.004.60-1ubuntu3) ... 122s Preparing to unpack .../21-psmisc_23.7-1_armhf.deb ... 122s Unpacking psmisc (23.7-1) over (23.6-2) ... 122s Preparing to unpack .../22-telnet_0.17+2.5-3ubuntu3_all.deb ... 122s Unpacking telnet (0.17+2.5-3ubuntu3) over (0.17+2.5-3ubuntu1) ... 122s Preparing to unpack .../23-usb.ids_2024.03.18-1_all.deb ... 122s Unpacking usb.ids (2024.03.18-1) over (2024.01.30-1) ... 122s Preparing to unpack .../24-xz-utils_5.6.0-0.2_armhf.deb ... 122s Unpacking xz-utils (5.6.0-0.2) over (5.4.5-0.3) ... 122s Preparing to unpack .../25-libctf0_2.42-4ubuntu1_armhf.deb ... 122s Unpacking libctf0:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 122s Preparing to unpack .../26-libctf-nobfd0_2.42-4ubuntu1_armhf.deb ... 122s Unpacking libctf-nobfd0:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 122s Preparing to unpack .../27-binutils-arm-linux-gnueabihf_2.42-4ubuntu1_armhf.deb ... 122s Unpacking binutils-arm-linux-gnueabihf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 122s Preparing to unpack .../28-libbinutils_2.42-4ubuntu1_armhf.deb ... 122s Unpacking libbinutils:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 122s Preparing to unpack .../29-binutils_2.42-4ubuntu1_armhf.deb ... 122s Unpacking binutils (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 123s Preparing to unpack .../30-binutils-common_2.42-4ubuntu1_armhf.deb ... 123s Unpacking binutils-common:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 123s Preparing to unpack .../31-libsframe1_2.42-4ubuntu1_armhf.deb ... 123s Unpacking libsframe1:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 123s Preparing to unpack .../32-bolt_0.9.6-2build1_armhf.deb ... 123s Unpacking bolt (0.9.6-2build1) over (0.9.6-2) ... 123s Preparing to unpack .../33-cryptsetup-bin_2%3a2.7.0-1ubuntu2_armhf.deb ... 123s Unpacking cryptsetup-bin (2:2.7.0-1ubuntu2) over (2:2.7.0-1ubuntu1) ... 123s Preparing to unpack .../34-dpkg-dev_1.22.6ubuntu4_all.deb ... 123s Unpacking dpkg-dev (1.22.6ubuntu4) over (1.22.4ubuntu5) ... 123s Preparing to unpack .../35-libdpkg-perl_1.22.6ubuntu4_all.deb ... 123s Unpacking libdpkg-perl (1.22.6ubuntu4) over (1.22.4ubuntu5) ... 123s Preparing to unpack .../36-gnupg-l10n_2.4.4-2ubuntu15_all.deb ... 123s Unpacking gnupg-l10n (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 123s Preparing to unpack .../37-ibverbs-providers_50.0-2build1_armhf.deb ... 123s Unpacking ibverbs-providers:armhf (50.0-2build1) over (50.0-2) ... 123s Preparing to unpack .../38-jq_1.7.1-3_armhf.deb ... 123s Unpacking jq (1.7.1-3) over (1.7.1-2) ... 123s Preparing to unpack .../39-libjq1_1.7.1-3_armhf.deb ... 123s Unpacking libjq1:armhf (1.7.1-3) over (1.7.1-2) ... 123s Selecting previously unselected package libatm1t64:armhf. 123s Preparing to unpack .../40-libatm1t64_1%3a2.5.1-5.1_armhf.deb ... 123s Unpacking libatm1t64:armhf (1:2.5.1-5.1) ... 123s Preparing to unpack .../41-libevent-core-2.1-7_2.1.12-stable-9build1_armhf.deb ... 123s Unpacking libevent-core-2.1-7:armhf (2.1.12-stable-9build1) over (2.1.12-stable-9) ... 123s Preparing to unpack .../42-libftdi1-2_1.5-6build4_armhf.deb ... 123s Unpacking libftdi1-2:armhf (1.5-6build4) over (1.5-6build3) ... 123s Preparing to unpack .../43-libldap-common_2.6.7+dfsg-1~exp1ubuntu6_all.deb ... 123s Unpacking libldap-common (2.6.7+dfsg-1~exp1ubuntu6) over (2.6.7+dfsg-1~exp1ubuntu1) ... 123s Preparing to unpack .../44-libsasl2-modules_2.1.28+dfsg1-5ubuntu1_armhf.deb ... 123s Unpacking libsasl2-modules:armhf (2.1.28+dfsg1-5ubuntu1) over (2.1.28+dfsg1-4) ... 124s Preparing to unpack .../45-python3-distutils_3.12.2-3ubuntu1.1_all.deb ... 124s Unpacking python3-distutils (3.12.2-3ubuntu1.1) over (3.11.5-1) ... 124s Preparing to unpack .../46-python3-lib2to3_3.12.2-3ubuntu1.1_all.deb ... 124s Unpacking python3-lib2to3 (3.12.2-3ubuntu1.1) over (3.11.5-1) ... 124s Preparing to unpack .../47-python3-pyrsistent_0.20.0-1build1_armhf.deb ... 124s Unpacking python3-pyrsistent:armhf (0.20.0-1build1) over (0.20.0-1) ... 124s Preparing to unpack .../48-python3-typing-extensions_4.10.0-1_all.deb ... 124s Unpacking python3-typing-extensions (4.10.0-1) over (4.9.0-1) ... 124s Preparing to unpack .../49-kpartx_0.9.4-5ubuntu6_armhf.deb ... 124s Unpacking kpartx (0.9.4-5ubuntu6) over (0.9.4-5ubuntu3) ... 124s Setting up pinentry-curses (1.2.1-3ubuntu4) ... 124s Setting up libtext-iconv-perl:armhf (1.7-8build2) ... 124s Setting up libtext-charwidth-perl:armhf (0.04-11build2) ... 124s Setting up libibverbs1:armhf (50.0-2build1) ... 124s Setting up systemd-sysv (255.4-1ubuntu5) ... 124s Setting up libapparmor1:armhf (4.0.0-beta3-0ubuntu2) ... 124s Setting up libatm1t64:armhf (1:2.5.1-5.1) ... 124s Setting up libgdbm6t64:armhf (1.23-5.1) ... 124s Setting up bsdextrautils (2.39.3-9ubuntu2) ... 124s Setting up libgdbm-compat4t64:armhf (1.23-5.1) ... 124s Setting up xdg-user-dirs (0.18-1) ... 124s Setting up ibverbs-providers:armhf (50.0-2build1) ... 124s Setting up linux-headers-6.8.0-20 (6.8.0-20.20) ... 124s Setting up libmagic-mgc (1:5.45-3) ... 124s Setting up gawk (1:5.2.1-2build2) ... 124s Setting up psmisc (23.7-1) ... 124s Setting up libjq1:armhf (1.7.1-3) ... 124s Setting up libtirpc-common (1.3.4+ds-1.1) ... 124s Setting up libbrotli1:armhf (1.1.0-2build1) ... 124s Setting up libsqlite3-0:armhf (3.45.1-1ubuntu1) ... 124s Setting up libsasl2-modules:armhf (2.1.28+dfsg1-5ubuntu1) ... 124s Setting up libuv1t64:armhf (1.48.0-1.1) ... 124s Setting up libmagic1t64:armhf (1:5.45-3) ... 124s Setting up rsyslog (8.2312.0-3ubuntu7) ... 124s info: The user `syslog' is already a member of `adm'. 125s apparmor_parser: Unable to replace "rsyslogd". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 125s 126s Setting up binutils-common:armhf (2.42-4ubuntu1) ... 126s Setting up libpsl5t64:armhf (0.21.2-1.1) ... 126s Setting up libnghttp2-14:armhf (1.59.0-1build1) ... 126s Setting up libreiserfscore0t64 (1:3.6.27-7.1) ... 126s Setting up libctf-nobfd0:armhf (2.42-4ubuntu1) ... 126s Setting up libnss-systemd:armhf (255.4-1ubuntu5) ... 126s Setting up krb5-locales (1.20.1-6ubuntu1) ... 126s Setting up file (1:5.45-3) ... 126s Setting up kmod (31+20240202-2ubuntu4) ... 126s Setting up lshw (02.19.git.2021.06.19.996aaad9c7-2build2) ... 126s Setting up libldap-common (2.6.7+dfsg-1~exp1ubuntu6) ... 126s Setting up libprotobuf-c1:armhf (1.4.1-1ubuntu3) ... 126s Setting up xxd (2:9.1.0016-1ubuntu6) ... 126s Setting up libsframe1:armhf (2.42-4ubuntu1) ... 126s Setting up libelf1t64:armhf (0.190-1.1build2) ... 126s Setting up libkrb5support0:armhf (1.20.1-6ubuntu1) ... 126s Setting up linux-headers-6.8.0-20-generic (6.8.0-20.20) ... 126s Setting up eject (2.39.3-9ubuntu2) ... 126s Setting up apparmor (4.0.0-beta3-0ubuntu2) ... 126s Installing new version of config file /etc/apparmor.d/abstractions/authentication ... 126s Installing new version of config file /etc/apparmor.d/abstractions/crypto ... 126s Installing new version of config file /etc/apparmor.d/abstractions/kde-open5 ... 126s Installing new version of config file /etc/apparmor.d/abstractions/openssl ... 126s Installing new version of config file /etc/apparmor.d/code ... 126s Installing new version of config file /etc/apparmor.d/firefox ... 126s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 126s 126s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 126s 126s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 126s 128s sysctl: cannot stat /proc/sys/kernel/apparmor_restrict_unprivileged_userns: No such file or directory 128s Reloading AppArmor profiles 128s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "busybox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "nautilus". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "toybox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 128s 128s Error: At least one profile failed to load 128s Setting up libglib2.0-0t64:armhf (2.79.3-3ubuntu5) ... 128s No schema files found: doing nothing. 128s Setting up libglib2.0-data (2.79.3-3ubuntu5) ... 128s Setting up vim-common (2:9.1.0016-1ubuntu6) ... 128s Setting up gcc-13-base:armhf (13.2.0-21ubuntu1) ... 128s Setting up libqrtr-glib0:armhf (1.2.2-1ubuntu3) ... 128s Setting up libslang2:armhf (2.3.3-3build1) ... 128s Setting up libnvme1t64 (1.8-3) ... 128s Setting up mtr-tiny (0.95-1.1build1) ... 128s Setting up gnupg-l10n (2.4.4-2ubuntu15) ... 128s Setting up librtmp1:armhf (2.4+20151223.gitfa8646d.1-2build6) ... 128s Setting up libdbus-1-3:armhf (1.14.10-4ubuntu2) ... 128s Setting up xz-utils (5.6.0-0.2) ... 128s Setting up perl-modules-5.38 (5.38.2-3.2) ... 128s Setting up libproc2-0:armhf (2:4.0.4-4ubuntu2) ... 128s Setting up libblockdev-utils3:armhf (3.1.0-1build1) ... 128s Setting up libpng16-16t64:armhf (1.6.43-3) ... 128s Setting up systemd-timesyncd (255.4-1ubuntu5) ... 128s Setting up libevent-core-2.1-7:armhf (2.1.12-stable-9build1) ... 128s Setting up udev (255.4-1ubuntu5) ... 129s Setting up libss2:armhf (1.47.0-2.4~exp1ubuntu2) ... 129s Setting up usb.ids (2024.03.18-1) ... 129s Setting up sudo (1.9.15p5-3ubuntu3) ... 129s Setting up dhcpcd-base (1:10.0.6-1ubuntu2) ... 129s Setting up gir1.2-glib-2.0:armhf (2.79.3-3ubuntu5) ... 129s Setting up libk5crypto3:armhf (1.20.1-6ubuntu1) ... 129s Setting up logsave (1.47.0-2.4~exp1ubuntu2) ... 129s Setting up libfdisk1:armhf (2.39.3-9ubuntu2) ... 129s Setting up libdb5.3t64:armhf (5.3.28+dfsg2-6) ... 129s Setting up libblockdev-nvme3:armhf (3.1.0-1build1) ... 129s Setting up libdevmapper1.02.1:armhf (2:1.02.185-3ubuntu2) ... 129s Setting up libblockdev-fs3:armhf (3.1.0-1build1) ... 129s Setting up python-apt-common (2.7.7) ... 129s Setting up mount (2.39.3-9ubuntu2) ... 129s Setting up dmsetup (2:1.02.185-3ubuntu2) ... 129s Setting up uuid-runtime (2.39.3-9ubuntu2) ... 131s uuidd.service is a disabled or a static unit not running, not starting it. 131s Setting up libmm-glib0:armhf (1.23.4-0ubuntu1) ... 131s Setting up groff-base (1.23.0-3build1) ... 131s Setting up libplymouth5:armhf (24.004.60-1ubuntu6) ... 131s Setting up dbus-session-bus-common (1.14.10-4ubuntu2) ... 131s Setting up kpartx (0.9.4-5ubuntu6) ... 131s Setting up jq (1.7.1-3) ... 131s Setting up procps (2:4.0.4-4ubuntu2) ... 131s Setting up gpgconf (2.4.4-2ubuntu15) ... 131s Setting up libpcap0.8t64:armhf (1.10.4-4.1ubuntu2) ... 131s Setting up libcryptsetup12:armhf (2:2.7.0-1ubuntu2) ... 131s Setting up libgirepository-1.0-1:armhf (1.79.1-1ubuntu6) ... 131s Setting up libjson-glib-1.0-common (1.8.0-2build1) ... 131s Setting up libkrb5-3:armhf (1.20.1-6ubuntu1) ... 131s Setting up libpython3.11-minimal:armhf (3.11.8-1build4) ... 131s Setting up libusb-1.0-0:armhf (2:1.0.27-1) ... 131s Setting up libperl5.38t64:armhf (5.38.2-3.2) ... 131s Setting up tnftp (20230507-2build1) ... 132s Setting up libbinutils:armhf (2.42-4ubuntu1) ... 132s Setting up dbus-system-bus-common (1.14.10-4ubuntu2) ... 132s Setting up libfido2-1:armhf (1.14.0-1build1) ... 132s Setting up openssl (3.0.13-0ubuntu2) ... 132s Setting up readline-common (8.2-4) ... 132s Setting up libxml2:armhf (2.9.14+dfsg-1.3ubuntu2) ... 132s Setting up libxmuu1:armhf (2:1.1.3-3build1) ... 132s Setting up dbus-bin (1.14.10-4ubuntu2) ... 132s Setting up info (7.1-3build1) ... 132s Setting up liblocale-gettext-perl (1.07-6ubuntu4) ... 132s Setting up gpg (2.4.4-2ubuntu15) ... 132s Setting up libgudev-1.0-0:armhf (1:238-3ubuntu2) ... 132s Setting up libpolkit-gobject-1-0:armhf (124-1ubuntu1) ... 132s Setting up libbpf1:armhf (1:1.3.0-2build1) ... 132s Setting up libmbim-glib4:armhf (1.31.2-0ubuntu2) ... 132s Setting up rsync (3.2.7-1build1) ... 132s rsync.service is a disabled or a static unit not running, not starting it. 132s Setting up libudisks2-0:armhf (2.10.1-6) ... 132s Setting up bolt (0.9.6-2build1) ... 133s bolt.service is a disabled or a static unit not running, not starting it. 133s Setting up gnupg-utils (2.4.4-2ubuntu15) ... 133s Setting up initramfs-tools-bin (0.142ubuntu23) ... 133s Setting up libctf0:armhf (2.42-4ubuntu1) ... 133s Setting up cryptsetup-bin (2:2.7.0-1ubuntu2) ... 133s Setting up python3.11-minimal (3.11.8-1build4) ... 134s Setting up tcpdump (4.99.4-3ubuntu2) ... 134s apparmor_parser: Unable to replace "tcpdump". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 134s 134s Setting up apt-utils (2.7.14) ... 134s Setting up gpg-agent (2.4.4-2ubuntu15) ... 134s Setting up libpython3.12-stdlib:armhf (3.12.2-4build3) ... 134s Setting up libblockdev-mdraid3:armhf (3.1.0-1build1) ... 134s Setting up wget (1.21.4-1ubuntu2) ... 134s Setting up libblockdev-swap3:armhf (3.1.0-1build1) ... 134s Setting up plymouth (24.004.60-1ubuntu6) ... 134s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 135s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 135s Setting up libxmlb2:armhf (0.3.15-1build1) ... 135s Setting up btrfs-progs (6.6.3-1.1build1) ... 135s Setting up libpython3.11-stdlib:armhf (3.11.8-1build4) ... 135s Setting up python3.12 (3.12.2-4build3) ... 136s Setting up libblockdev-loop3:armhf (3.1.0-1build1) ... 136s Setting up gpgsm (2.4.4-2ubuntu15) ... 136s Setting up inetutils-telnet (2:2.5-3ubuntu3) ... 136s Setting up e2fsprogs (1.47.0-2.4~exp1ubuntu2) ... 136s update-initramfs: deferring update (trigger activated) 137s e2scrub_all.service is a disabled or a static unit not running, not starting it. 137s Setting up libparted2t64:armhf (3.6-3.1build2) ... 137s Setting up linux-headers-generic (6.8.0-20.20+1) ... 137s Setting up dbus-daemon (1.14.10-4ubuntu2) ... 137s Setting up libmbim-proxy (1.31.2-0ubuntu2) ... 137s Setting up vim-tiny (2:9.1.0016-1ubuntu6) ... 137s Setting up libnetplan1:armhf (1.0-1) ... 137s Setting up man-db (2.12.0-3build4) ... 137s Updating database of manual pages ... 138s apparmor_parser: Unable to replace "/usr/bin/man". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 138s 139s man-db.service is a disabled or a static unit not running, not starting it. 139s Setting up libblockdev3:armhf (3.1.0-1build1) ... 139s Setting up fdisk (2.39.3-9ubuntu2) ... 139s Setting up libjson-glib-1.0-0:armhf (1.8.0-2build1) ... 139s Setting up libblockdev-part3:armhf (3.1.0-1build1) ... 139s Setting up libsasl2-modules-db:armhf (2.1.28+dfsg1-5ubuntu1) ... 139s Setting up libftdi1-2:armhf (1.5-6build4) ... 139s Setting up perl (5.38.2-3.2) ... 139s Setting up plymouth-theme-ubuntu-text (24.004.60-1ubuntu6) ... 139s update-initramfs: deferring update (trigger activated) 139s Setting up gir1.2-girepository-2.0:armhf (1.79.1-1ubuntu6) ... 139s Setting up dbus (1.14.10-4ubuntu2) ... 139s A reboot is required to replace the running dbus-daemon. 139s Please reboot the system when convenient. 139s Setting up shared-mime-info (2.4-1build1) ... 140s Setting up libgssapi-krb5-2:armhf (1.20.1-6ubuntu1) ... 140s Setting up ftp (20230507-2build1) ... 140s Setting up keyboxd (2.4.4-2ubuntu15) ... 140s Setting up libdpkg-perl (1.22.6ubuntu4) ... 140s Setting up libsasl2-2:armhf (2.1.28+dfsg1-5ubuntu1) ... 140s Setting up libssh-4:armhf (0.10.6-2build1) ... 140s Setting up libpam-systemd:armhf (255.4-1ubuntu5) ... 140s Setting up libpolkit-agent-1-0:armhf (124-1ubuntu1) ... 140s Setting up libgpgme11t64:armhf (1.18.0-4.1ubuntu3) ... 140s Setting up netplan-generator (1.0-1) ... 140s Removing 'diversion of /lib/systemd/system-generators/netplan to /lib/systemd/system-generators/netplan.usr-is-merged by netplan-generator' 140s Setting up initramfs-tools-core (0.142ubuntu23) ... 140s Setting up binutils-arm-linux-gnueabihf (2.42-4ubuntu1) ... 140s Setting up libarchive13t64:armhf (3.7.2-1.1ubuntu2) ... 140s Setting up libldap2:armhf (2.6.7+dfsg-1~exp1ubuntu6) ... 140s Setting up libpython3-stdlib:armhf (3.12.2-0ubuntu1) ... 140s Setting up systemd-resolved (255.4-1ubuntu5) ... 141s Setting up python3.11 (3.11.8-1build4) ... 142s Setting up telnet (0.17+2.5-3ubuntu3) ... 142s Setting up initramfs-tools (0.142ubuntu23) ... 142s update-initramfs: deferring update (trigger activated) 142s Setting up libcurl4t64:armhf (8.5.0-2ubuntu8) ... 142s Setting up bind9-libs:armhf (1:9.18.24-0ubuntu3) ... 142s Setting up libtirpc3t64:armhf (1.3.4+ds-1.1) ... 142s Setting up e2fsprogs-l10n (1.47.0-2.4~exp1ubuntu2) ... 142s Setting up iproute2 (6.1.0-1ubuntu5) ... 142s Setting up openssh-client (1:9.6p1-3ubuntu11) ... 142s Setting up libgusb2:armhf (0.4.8-1build1) ... 142s Setting up libcurl3t64-gnutls:armhf (8.5.0-2ubuntu8) ... 142s Setting up parted (3.6-3.1build2) ... 142s Setting up libqmi-glib5:armhf (1.35.2-0ubuntu1) ... 142s Setting up python3 (3.12.2-0ubuntu1) ... 142s Setting up binutils (2.42-4ubuntu1) ... 142s Setting up libjcat1:armhf (0.2.0-2build2) ... 142s Setting up dpkg-dev (1.22.6ubuntu4) ... 142s Setting up dirmngr (2.4.4-2ubuntu15) ... 142s Setting up dbus-user-session (1.14.10-4ubuntu2) ... 142s Setting up python3-cryptography (41.0.7-4build2) ... 143s Setting up python3-gi (3.47.0-3build1) ... 143s Setting up python3-typing-extensions (4.10.0-1) ... 143s Setting up lsof (4.95.0-1build2) ... 143s Setting up python3-pyrsistent:armhf (0.20.0-1build1) ... 143s Setting up libnsl2:armhf (1.3.0-3build2) ... 143s Setting up gnupg (2.4.4-2ubuntu15) ... 143s Setting up python3-netplan (1.0-1) ... 143s Setting up curl (8.5.0-2ubuntu8) ... 143s Setting up libvolume-key1:armhf (0.3.12-7build1) ... 143s Setting up bind9-host (1:9.18.24-0ubuntu3) ... 143s Setting up python3-lib2to3 (3.12.2-3ubuntu1.1) ... 143s Setting up python3-pkg-resources (68.1.2-2ubuntu1) ... 144s Setting up python3-distutils (3.12.2-3ubuntu1.1) ... 144s python3.12: can't get files for byte-compilation 144s Setting up openssh-sftp-server (1:9.6p1-3ubuntu11) ... 144s Setting up python3-dbus (1.3.2-5build2) ... 144s Setting up python3-setuptools (68.1.2-2ubuntu1) ... 145s Setting up gpg-wks-client (2.4.4-2ubuntu15) ... 145s Setting up openssh-server (1:9.6p1-3ubuntu11) ... 145s Replacing config file /etc/ssh/sshd_config with new version 146s Created symlink /etc/systemd/system/ssh.service.requires/ssh.socket → /usr/lib/systemd/system/ssh.socket. 147s Setting up libblockdev-crypto3:armhf (3.1.0-1build1) ... 147s Setting up python3-gdbm:armhf (3.12.2-3ubuntu1.1) ... 147s Setting up python3-apt (2.7.7) ... 147s Setting up libfwupd2:armhf (1.9.15-2) ... 147s Setting up python3-yaml (6.0.1-2build1) ... 148s Setting up libqmi-proxy (1.35.2-0ubuntu1) ... 148s Setting up netplan.io (1.0-1) ... 148s Setting up bind9-dnsutils (1:9.18.24-0ubuntu3) ... 148s Setting up ubuntu-pro-client (31.2.2) ... 148s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 148s 149s Setting up fwupd (1.9.15-2) ... 149s fwupd-offline-update.service is a disabled or a static unit not running, not starting it. 149s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 150s fwupd.service is a disabled or a static unit not running, not starting it. 150s Setting up ubuntu-pro-client-l10n (31.2.2) ... 150s Setting up udisks2 (2.10.1-6) ... 150s vda: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/uevent': Permission denied 150s vda1: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/vda1/uevent': Permission denied 150s vda15: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/vda15/uevent': Permission denied 150s vda2: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/vda2/uevent': Permission denied 150s loop0: Failed to write 'change' to '/sys/devices/virtual/block/loop0/uevent': Permission denied 150s loop1: Failed to write 'change' to '/sys/devices/virtual/block/loop1/uevent': Permission denied 150s loop2: Failed to write 'change' to '/sys/devices/virtual/block/loop2/uevent': Permission denied 150s loop3: Failed to write 'change' to '/sys/devices/virtual/block/loop3/uevent': Permission denied 150s loop4: Failed to write 'change' to '/sys/devices/virtual/block/loop4/uevent': Permission denied 150s loop5: Failed to write 'change' to '/sys/devices/virtual/block/loop5/uevent': Permission denied 150s loop6: Failed to write 'change' to '/sys/devices/virtual/block/loop6/uevent': Permission denied 150s loop7: Failed to write 'change' to '/sys/devices/virtual/block/loop7/uevent': Permission denied 150s Processing triggers for ufw (0.36.2-5) ... 151s Processing triggers for systemd (255.4-1ubuntu5) ... 151s Processing triggers for install-info (7.1-3build1) ... 151s Processing triggers for libc-bin (2.39-0ubuntu6) ... 151s Processing triggers for initramfs-tools (0.142ubuntu23) ... 152s Reading package lists... 153s Building dependency tree... 153s Reading state information... 153s The following packages will be REMOVED: 153s linux-headers-6.8.0-11* python3-distutils* python3-lib2to3* 153s 0 upgraded, 0 newly installed, 3 to remove and 1 not upgraded. 153s After this operation, 86.5 MB disk space will be freed. 154s (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 ... 78647 files and directories currently installed.) 154s Removing linux-headers-6.8.0-11 (6.8.0-11.11) ... 154s Removing python3-distutils (3.12.2-3ubuntu1.1) ... 154s Removing python3-lib2to3 (3.12.2-3ubuntu1.1) ... 156s autopkgtest [09:51:10]: rebooting testbed after setup commands that affected boot 194s autopkgtest [09:51:48]: testbed running kernel: Linux 5.15.0-101-generic #111-Ubuntu SMP Wed Mar 6 18:01:01 UTC 2024 219s autopkgtest [09:52:13]: @@@@@@@@@@@@@@@@@@@@ apt-source python-libtmux 230s Get:1 http://ftpmaster.internal/ubuntu noble/universe python-libtmux 0.30.2-1 (dsc) [1816 B] 230s Get:2 http://ftpmaster.internal/ubuntu noble/universe python-libtmux 0.30.2-1 (tar) [218 kB] 230s Get:3 http://ftpmaster.internal/ubuntu noble/universe python-libtmux 0.30.2-1 (diff) [3240 B] 230s gpgv: Signature made Sat Feb 17 11:54:15 2024 UTC 230s gpgv: using RSA key 02A4A46D5B6B5CFE3124C87710BE8983F3D59D64 230s gpgv: Can't check signature: No public key 230s dpkg-source: warning: cannot verify inline signature for ./python-libtmux_0.30.2-1.dsc: no acceptable signature found 230s autopkgtest [09:52:24]: testing package python-libtmux version 0.30.2-1 232s autopkgtest [09:52:26]: build not needed 234s autopkgtest [09:52:28]: test pytest: preparing testbed 243s Reading package lists... 244s Building dependency tree... 244s Reading state information... 244s Starting pkgProblemResolver with broken count: 0 244s Starting 2 pkgProblemResolver with broken count: 0 244s Done 245s The following additional packages will be installed: 245s python3-all python3-iniconfig python3-libtmux python3-packaging 245s python3-pluggy python3-pytest python3-pytest-mock 245s python3-pytest-rerunfailures 245s Suggested packages: 245s python-pytest-mock-doc 245s The following NEW packages will be installed: 245s autopkgtest-satdep python3-all python3-iniconfig python3-libtmux 245s python3-packaging python3-pluggy python3-pytest python3-pytest-mock 245s python3-pytest-rerunfailures 245s 0 upgraded, 9 newly installed, 0 to remove and 1 not upgraded. 245s Need to get 380 kB/381 kB of archives. 245s After this operation, 1907 kB of additional disk space will be used. 245s Get:1 /tmp/autopkgtest.m5Vctj/1-autopkgtest-satdep.deb autopkgtest-satdep armhf 0 [752 B] 245s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-all armhf 3.12.2-0ubuntu1 [886 B] 245s Get:3 http://ftpmaster.internal/ubuntu noble/universe armhf python3-iniconfig all 1.1.1-2 [6024 B] 245s Get:4 http://ftpmaster.internal/ubuntu noble/universe armhf python3-libtmux all 0.30.2-1 [39.3 kB] 245s Get:5 http://ftpmaster.internal/ubuntu noble/main armhf python3-packaging all 23.2-1 [40.6 kB] 245s Get:6 http://ftpmaster.internal/ubuntu noble/universe armhf python3-pluggy all 1.4.0-1 [20.4 kB] 245s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf python3-pytest all 8.0.2-1 [248 kB] 246s Get:8 http://ftpmaster.internal/ubuntu noble/universe armhf python3-pytest-mock all 3.12.0-1.1 [11.3 kB] 246s Get:9 http://ftpmaster.internal/ubuntu noble/universe armhf python3-pytest-rerunfailures all 12.0-1 [14.1 kB] 246s Fetched 380 kB in 1s (578 kB/s) 246s Selecting previously unselected package python3-all. 246s (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 ... 58436 files and directories currently installed.) 246s Preparing to unpack .../0-python3-all_3.12.2-0ubuntu1_armhf.deb ... 246s Unpacking python3-all (3.12.2-0ubuntu1) ... 246s Selecting previously unselected package python3-iniconfig. 246s Preparing to unpack .../1-python3-iniconfig_1.1.1-2_all.deb ... 246s Unpacking python3-iniconfig (1.1.1-2) ... 246s Selecting previously unselected package python3-libtmux. 246s Preparing to unpack .../2-python3-libtmux_0.30.2-1_all.deb ... 246s Unpacking python3-libtmux (0.30.2-1) ... 246s Selecting previously unselected package python3-packaging. 246s Preparing to unpack .../3-python3-packaging_23.2-1_all.deb ... 246s Unpacking python3-packaging (23.2-1) ... 247s Selecting previously unselected package python3-pluggy. 247s Preparing to unpack .../4-python3-pluggy_1.4.0-1_all.deb ... 247s Unpacking python3-pluggy (1.4.0-1) ... 247s Selecting previously unselected package python3-pytest. 247s Preparing to unpack .../5-python3-pytest_8.0.2-1_all.deb ... 247s Unpacking python3-pytest (8.0.2-1) ... 247s Selecting previously unselected package python3-pytest-mock. 247s Preparing to unpack .../6-python3-pytest-mock_3.12.0-1.1_all.deb ... 247s Unpacking python3-pytest-mock (3.12.0-1.1) ... 247s Selecting previously unselected package python3-pytest-rerunfailures. 247s Preparing to unpack .../7-python3-pytest-rerunfailures_12.0-1_all.deb ... 247s Unpacking python3-pytest-rerunfailures (12.0-1) ... 247s Selecting previously unselected package autopkgtest-satdep. 247s Preparing to unpack .../8-1-autopkgtest-satdep.deb ... 247s Unpacking autopkgtest-satdep (0) ... 247s Setting up python3-iniconfig (1.1.1-2) ... 247s Setting up python3-libtmux (0.30.2-1) ... 247s Setting up python3-all (3.12.2-0ubuntu1) ... 247s Setting up python3-packaging (23.2-1) ... 247s Setting up python3-pluggy (1.4.0-1) ... 247s Setting up python3-pytest (8.0.2-1) ... 248s Setting up python3-pytest-mock (3.12.0-1.1) ... 248s Setting up python3-pytest-rerunfailures (12.0-1) ... 248s Setting up autopkgtest-satdep (0) ... 248s Processing triggers for man-db (2.12.0-3build4) ... 259s (Reading database ... 58662 files and directories currently installed.) 259s Removing autopkgtest-satdep (0) ... 265s autopkgtest [09:52:59]: test pytest: [----------------------- 272s === python3.12 === 273s /usr/lib/python3/dist-packages/_pytest/mark/structures.py:357: PytestRemovedIn9Warning: Marks applied to fixtures have no effect 273s See docs: https://docs.pytest.org/en/stable/deprecations.html#applying-a-mark-to-a-fixture-function 273s store_mark(func, self.mark) 274s ============================= test session starts ============================== 274s platform linux -- Python 3.12.2, pytest-8.0.2, pluggy-1.4.0 274s rootdir: /tmp/autopkgtest.m5Vctj/autopkgtest_tmp 274s plugins: libtmux-0.30.2, mock-3.12.0, rerunfailures-12.0 274s collected 294 items / 7 deselected / 287 selected 274s 274s tests/_internal/test_query_list.py ..................................... [ 12%] 274s . [ 13%] 275s tests/legacy_api/test_common.py ............E....... [ 20%] 276s tests/legacy_api/test_pane.py EEEEE [ 21%] 279s tests/legacy_api/test_server.py E......E.FFF...F.F [ 28%] 291s tests/legacy_api/test_session.py EEEEEEFEEEEEEEEEEEEEEEEEEEs [ 37%] 291s tests/legacy_api/test_test.py .. [ 38%] 293s tests/legacy_api/test_tmuxobject.py EEEEE [ 40%] 293s tests/legacy_api/test_version.py .................. [ 46%] 300s tests/legacy_api/test_window.py EEEEEEEEEEEEEEEEEEEEEEEEs [ 55%] 301s tests/test_common.py ............E....... [ 62%] 301s tests/test_dataclasses.py FE [ 62%] 305s tests/test_pane.py EEEEEEE [ 65%] 308s tests/test_server.py E......E.FFFFF...F.F [ 72%] 316s tests/test_session.py EEEEEEFEEEEEEEEEEEEEEEEEEEs [ 81%] 316s tests/test_test.py .. [ 82%] 318s tests/test_tmuxobject.py EEEEF [ 83%] 318s tests/test_version.py .................. [ 90%] 328s tests/test_window.py EEEEEEEEEEEEEEEEEEEEEEEEEEsE [100%] 328s 328s ==================================== ERRORS ==================================== 328s ___________________ ERROR at setup of test_tmux_cmd_unicode ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testxc5t9zie) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testxc5t9zie), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_resize_pane ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testgxsi8aw5) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testgxsi8aw5), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________ ERROR at setup of test_send_keys _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testcrgjx5ap) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testcrgjx5ap), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_set_height _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testubj5drs1) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testubj5drs1), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________ ERROR at setup of test_set_width _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test9_pnehog) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test9_pnehog), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_capture_pane ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testwp89eyui) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testwp89eyui), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_has_session ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testeadr4qo5) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testeadr4qo5), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________________ ERROR at setup of test_getenv _________________________ 328s 328s request = >, session_params = {} 328s server = Server(socket_name=libtmux_testktjzxfmq) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testktjzxfmq), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_has_session ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testhmevko2l) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testhmevko2l), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_select_window _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testifwcb81g) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testifwcb81g), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_select_window_returns_Window ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testjca_9u0t) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testjca_9u0t), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_attached_window ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test72kqvzng) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test72kqvzng), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_attached_pane _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test74f6rizk) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test74f6rizk), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_session_rename _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test28y1bvue) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test28y1bvue), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_show_options ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test79qgn50d) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test79qgn50d), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_set_show_options_single ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test3fh_lj1g) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test3fh_lj1g), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_set_show_option ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test_6gw8cjf) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test_6gw8cjf), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________ ERROR at setup of test_empty_session_option_returns_None ___________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test2i7_t40p) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test2i7_t40p), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_show_option_unknown __________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testp0l7r4u_) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testp0l7r4u_), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________________ ERROR at setup of test_show_option_ambiguous _________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testkje53wtz) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testkje53wtz), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________________ ERROR at setup of test_set_option_ambiguous __________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testnoz68d2j) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testnoz68d2j), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_set_option_invalid ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test7mbqd10n) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test7mbqd10n), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_show_environment ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test43jesn6v) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test43jesn6v), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________ ERROR at setup of test_set_show_environment_single ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testg9x_7zmk) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testg9x_7zmk), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________ ERROR at setup of test_show_environment_not_set ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testc53sfjwp) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testc53sfjwp), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_remove_environment ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testwe_ri0qx) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testwe_ri0qx), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_unset_environment ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testt2rfz94a) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testt2rfz94a), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____ ERROR at setup of test_periods_raise_badsessionname[hey.period-True] _____ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testo5r8ghwn) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testo5r8ghwn), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __ ERROR at setup of test_periods_raise_badsessionname[hey:its a colon-True] ___ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testhad4_xk1) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testhad4_xk1), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______ ERROR at setup of test_periods_raise_badsessionname[hey moo-False] ______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test72ogik_a) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test72ogik_a), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_cmd_inserts_session_id _________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testgl_cmw6d) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testgl_cmw6d), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______ ERROR at setup of test_new_window_with_environment[environment0] _______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testx8k96_yz) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testx8k96_yz), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______ ERROR at setup of test_new_window_with_environment[environment1] _______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testnlfx6qt4) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testnlfx6qt4), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_find_where _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testkodba29q) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testkodba29q), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_find_where_None ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testm1bkupar) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testm1bkupar), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________ ERROR at setup of test_find_where_multiple_infos _______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testj1r0zwp5) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testj1r0zwp5), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________________________ ERROR at setup of test_where _________________________ 328s 328s request = >, session_params = {} 328s server = Server(socket_name=libtmux_testmhac1og2) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testmhac1og2), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________ ERROR at setup of test_get_by_id _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testbqkhixoz) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testbqkhixoz), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_select_window _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testuz_wt1aq) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testuz_wt1aq), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_fresh_window_data ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testzlxfcv17) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testzlxfcv17), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_newest_pane_data ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testrwu41ake) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testrwu41ake), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_attached_pane _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test60dykbao) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test60dykbao), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_split_window ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testqx_cv108) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testqx_cv108), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_split_window_shell ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testhdytb50v) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testhdytb50v), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_split_window_horizontal ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testinp7gbsj) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testinp7gbsj), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______ ERROR at setup of test_window_rename[test-ha ha ha fjewlkjflwef] _______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testrl_34ma9) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testrl_34ma9), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________ ERROR at setup of test_window_rename[test-hello \\ wazzup 0] _________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testa3pd0h1w) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testa3pd0h1w), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_kill_window ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testt_d9oche) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testt_d9oche), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_show_window_options __________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testk8nmwcg6) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testk8nmwcg6), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_set_show_window_options ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testb52wq8se) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testb52wq8se), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________ ERROR at setup of test_empty_window_option_returns_None ____________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testnlqyrmug) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testnlqyrmug), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_show_window_option ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test2ws1zpiy) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test2ws1zpiy), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________ ERROR at setup of test_show_window_option_unknown _______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testyowvna07) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testyowvna07), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_show_window_option_ambiguous ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testsiez9p_0) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testsiez9p_0), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________ ERROR at setup of test_set_window_option_ambiguous ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testuhw1r_et) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testuhw1r_et), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________ ERROR at setup of test_set_window_option_invalid _______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test41c9ex5h) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test41c9ex5h), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_move_window ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testy1gd0vn5) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testy1gd0vn5), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_move_window_to_other_session ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testkv_r0py4) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testkv_r0py4), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_select_layout_accepts_no_arg ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test9ni0w2mz) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test9ni0w2mz), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_empty_window_name ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test09va1isb) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test09va1isb), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______ ERROR at setup of test_split_window_with_environment[environment0] ______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test9tgemz7o) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test9tgemz7o), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______ ERROR at setup of test_split_window_with_environment[environment1] ______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testst6vg0df) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testst6vg0df), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_tmux_cmd_unicode ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testos82e7_x) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testos82e7_x), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________ ERROR at setup of test_querylist _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testn4mbyquf) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testn4mbyquf), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________ ERROR at setup of test_send_keys _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test7l1ev35y) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test7l1ev35y), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_set_height _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testtek5j0by) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testtek5j0by), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________ ERROR at setup of test_set_width _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testc7z3gks_) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testc7z3gks_), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_capture_pane ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testnix2w7y8) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testnix2w7y8), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_capture_pane_start ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testz6k8pyg3) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testz6k8pyg3), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_capture_pane_end ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testdul3j7qh) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testdul3j7qh), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_resize_pane ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test0_soq7c8) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test0_soq7c8), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_has_session ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testsdg5kiyn) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testsdg5kiyn), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________________ ERROR at setup of test_getenv _________________________ 328s 328s request = >, session_params = {} 328s server = Server(socket_name=libtmux_testprld35t4) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testprld35t4), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_has_session ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testle8yfpso) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testle8yfpso), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_select_window _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test67h3uxno) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test67h3uxno), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_select_window_returns_Window ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testg6bi9t5u) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testg6bi9t5u), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_attached_window ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test2b78qkja) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test2b78qkja), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_attached_pane _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testgjihusb8) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testgjihusb8), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_session_rename _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testp9y8huga) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testp9y8huga), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_show_options ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testovluqe9d) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testovluqe9d), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_set_show_options_single ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testq8ixp2sw) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testq8ixp2sw), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_set_show_option ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test0m8czg4h) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test0m8czg4h), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________ ERROR at setup of test_empty_session_option_returns_None ___________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test_n5is6hb) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test_n5is6hb), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_show_option_unknown __________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test9jugib46) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test9jugib46), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________________ ERROR at setup of test_show_option_ambiguous _________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testp3_w7u4g) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testp3_w7u4g), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________________ ERROR at setup of test_set_option_ambiguous __________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test4jpw7dfy) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test4jpw7dfy), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_set_option_invalid ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testdybtmfpj) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testdybtmfpj), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_show_environment ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testb7pikx9e) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testb7pikx9e), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________ ERROR at setup of test_set_show_environment_single ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test72htsubg) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test72htsubg), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________ ERROR at setup of test_show_environment_not_set ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testxwv2gka4) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testxwv2gka4), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_remove_environment ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test2l1jhe5s) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test2l1jhe5s), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_unset_environment ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testzdmhbgu6) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testzdmhbgu6), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____ ERROR at setup of test_periods_raise_bad_session_name[hey.period-True] ____ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testlu1n5oj7) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testlu1n5oj7), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _ ERROR at setup of test_periods_raise_bad_session_name[hey:its a colon-True] __ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testupcb951s) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testupcb951s), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____ ERROR at setup of test_periods_raise_bad_session_name[hey moo-False] _____ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testndvo59ig) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testndvo59ig), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_cmd_inserts_session_id _________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testhmq9a2b4) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testhmq9a2b4), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______ ERROR at setup of test_new_window_with_environment[environment0] _______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testdn_78zao) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testdn_78zao), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______ ERROR at setup of test_new_window_with_environment[environment1] _______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testjkw8h0id) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testjkw8h0id), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_find_where _______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testlwsy3829) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testlwsy3829), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________ ERROR at setup of test_find_where_None ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testiw0_62zf) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testiw0_62zf), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________ ERROR at setup of test_find_where_multiple_infos _______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_tests7kwaxb_) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_tests7kwaxb_), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________________________ ERROR at setup of test_where _________________________ 328s 328s request = >, session_params = {} 328s server = Server(socket_name=libtmux_testf7i3tnv6) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testf7i3tnv6), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_select_window _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test7_bp5kh8) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test7_bp5kh8), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_fresh_window_data ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testxi6v4s_0) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testxi6v4s_0), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_newest_pane_data ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testxo0bzqd9) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testxo0bzqd9), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_attached_pane _____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testdg_nmh9j) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testdg_nmh9j), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________________ ERROR at setup of test_split_window ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test3x1_vqcf) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test3x1_vqcf), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_split_window_shell ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testeuyczagt) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testeuyczagt), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_split_window_horizontal ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testxr_dtmuf) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testxr_dtmuf), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_split_percentage ____________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testkqd3xors) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testkqd3xors), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_split_window_size ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testau4l1v6k) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testau4l1v6k), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______ ERROR at setup of test_window_rename[test-ha ha ha fjewlkjflwef] _______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testp56sw2xl) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testp56sw2xl), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________ ERROR at setup of test_window_rename[test-hello \\ wazzup 0] _________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testqxyfksc_) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testqxyfksc_), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_kill_window ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testn5bz6ar7) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testn5bz6ar7), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_show_window_options __________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testy_5smhjo) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testy_5smhjo), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________ ERROR at setup of test_set_show_window_options ________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testla580igr) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testla580igr), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________ ERROR at setup of test_empty_window_option_returns_None ____________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test_zkocr9x) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test_zkocr9x), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ ERROR at setup of test_show_window_option ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testb8xlap0v) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testb8xlap0v), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________ ERROR at setup of test_show_window_option_unknown _______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test1vy5csz7) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test1vy5csz7), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_show_window_option_ambiguous ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testglf2xjby) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testglf2xjby), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________ ERROR at setup of test_set_window_option_ambiguous ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testcu0bz_xf) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testcu0bz_xf), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________ ERROR at setup of test_set_window_option_invalid _______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testtvocalky) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testtvocalky), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______________________ ERROR at setup of test_move_window ______________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testy508_w71) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testy508_w71), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_move_window_to_other_session ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test8g_v4lot) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test8g_v4lot), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _____________ ERROR at setup of test_select_layout_accepts_no_arg ______________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testrhclt7xd) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testrhclt7xd), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ ERROR at setup of test_empty_window_name ___________________ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testytfxm58a) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testytfxm58a), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______ ERROR at setup of test_split_window_with_environment[environment0] ______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_test7czd_6hs) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test7czd_6hs), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ______ ERROR at setup of test_split_window_with_environment[environment1] ______ 328s 328s request = > 328s session_params = {}, server = Server(socket_name=libtmux_testad763wml) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testad763wml), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________________ ERROR at setup of test_resize _________________________ 328s 328s request = >, session_params = {} 328s server = Server(socket_name=libtmux_testwlt9n_4s) 328s 328s @pytest.fixture(scope="function") 328s def session( 328s request: pytest.FixtureRequest, 328s session_params: t.Dict[str, t.Any], 328s server: Server, 328s ) -> "Session": 328s """Return new, temporary :class:`libtmux.Session`. 328s 328s >>> from libtmux.session import Session 328s 328s >>> def test_example(session: "Session") -> None: 328s ... assert isinstance(session.name, str) 328s ... assert session.name.startswith('libtmux_') 328s ... window = session.new_window(window_name='new one') 328s ... assert window.name == 'new one' 328s 328s .. :: 328s >>> locals().keys() 328s dict_keys(...) 328s 328s >>> source = ''.join([e.source for e in request._pyfuncitem.dtest.examples][:3]) 328s >>> pytester = request.getfixturevalue('pytester') 328s 328s >>> pytester.makepyfile(**{'whatever.py': source}) 328s PosixPath(...) 328s 328s >>> result = pytester.runpytest('whatever.py', '--disable-warnings') 328s ===... 328s 328s >>> result.assert_outcomes(passed=1) 328s """ 328s session_name = "tmuxp" 328s 328s if not server.has_session(session_name): 328s > server.new_session( 328s session_name=session_name, 328s ) 328s 328s /usr/lib/python3/dist-packages/libtmux/pytest_plugin.py:220: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testwlt9n_4s), session_name = 'tmuxp' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stmuxp', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s =================================== FAILURES =================================== 328s _______________________________ test_new_session _______________________________ 328s 328s server = Server(socket_name=libtmux_testraz2emj1) 328s 328s def test_new_session(server: Server) -> None: 328s """Server.new_session creates and returns valid session.""" 328s > mysession = server.new_session("test_new_session") 328s 328s tests/legacy_api/test_server.py:93: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testraz2emj1) 328s session_name = 'test_new_session', kill_session = False, attach = False 328s start_directory = None, window_name = None, window_command = None, x = None 328s y = None, environment = None, args = (), kwargs = {}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-stest_new_session', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________________ test_new_session_no_name ___________________________ 328s 328s server = Server(socket_name=libtmux_testz9wsdja5) 328s 328s def test_new_session_no_name(server: Server) -> None: 328s """Server.new_session works with no name.""" 328s > first_session = server.new_session() 328s 328s tests/legacy_api/test_server.py:100: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testz9wsdja5), session_name = None 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________________ test_new_session_shell ____________________________ 328s 328s server = Server(socket_name=libtmux_test8nq6csbk) 328s 328s def test_new_session_shell(server: Server) -> None: 328s """Verify ``Server.new_session`` creates valid session running w/ command.""" 328s cmd = "sleep 1m" 328s > mysession = server.new_session("test_new_session", window_command=cmd) 328s 328s tests/legacy_api/test_server.py:118: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test8nq6csbk) 328s session_name = 'test_new_session', kill_session = False, attach = False 328s start_directory = None, window_name = None, window_command = 'sleep 1m' 328s x = None, y = None, environment = None, args = (), kwargs = {}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-stest_new_session', '-d', 'sleep 1m') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________________ test_with_server_is_alive ___________________________ 328s 328s server = Server(socket_name=libtmux_test8jz7nlds) 328s 328s def test_with_server_is_alive(server: Server) -> None: 328s """Verify is_alive() returns True when tmux server is alive.""" 328s > server.new_session() 328s 328s tests/legacy_api/test_server.py:153: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test8jz7nlds), session_name = None 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ test_raise_if_dead_does_not_raise_if_alive __________________ 328s 328s server = Server(socket_name=libtmux_testd38qc2j0) 328s 328s def test_raise_if_dead_does_not_raise_if_alive(server: Server) -> None: 328s """Verify new_session() does not raise if tmux server is alive.""" 328s > server.new_session() 328s 328s tests/legacy_api/test_server.py:166: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testd38qc2j0), session_name = None 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________________ test_new_session _______________________________ 328s 328s server = Server(socket_name=libtmux_test59qpm0bd) 328s 328s def test_new_session(server: Server) -> None: 328s """Server.new_session creates new session.""" 328s new_session_name = TEST_SESSION_PREFIX + next(namer) 328s > new_session = server.new_session(session_name=new_session_name, detach=True) 328s 328s tests/legacy_api/test_session.py:109: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test59qpm0bd) 328s session_name = 'libtmux_6yqf_pb2', kill_session = False, attach = False 328s start_directory = None, window_name = None, window_command = None, x = None 328s y = None, environment = None, args = (), kwargs = {'detach': True}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-slibtmux_6yqf_pb2', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________________________ test_pane ___________________________________ 328s 328s monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xf67c8318> 328s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_pane0') 328s server = Server(socket_name=libtmux_test8isv6fxk) 328s 328s def test_pane( 328s monkeypatch: pytest.MonkeyPatch, 328s tmp_path: pathlib.Path, 328s server: Server, 328s ) -> None: 328s """Verify Pane dataclass object.""" 328s monkeypatch.chdir(tmp_path) 328s 328s try: 328s > __session = server.sessions[0] 328s E IndexError: list index out of range 328s 328s /tmp/autopkgtest.m5Vctj/autopkgtest_tmp/tests/test_dataclasses.py:36: IndexError 328s 328s During handling of the above exception, another exception occurred: 328s 328s monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xf67c8318> 328s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_pane0') 328s server = Server(socket_name=libtmux_test8isv6fxk) 328s 328s def test_pane( 328s monkeypatch: pytest.MonkeyPatch, 328s tmp_path: pathlib.Path, 328s server: Server, 328s ) -> None: 328s """Verify Pane dataclass object.""" 328s monkeypatch.chdir(tmp_path) 328s 328s try: 328s __session = server.sessions[0] 328s except Exception: 328s > __session = server.new_session() 328s 328s /tmp/autopkgtest.m5Vctj/autopkgtest_tmp/tests/test_dataclasses.py:38: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test8isv6fxk), session_name = None 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________________ test_new_session _______________________________ 328s 328s server = Server(socket_name=libtmux_testfrdlozji) 328s 328s def test_new_session(server: Server) -> None: 328s """Server.new_session creates and returns valid session.""" 328s > mysession = server.new_session("test_new_session") 328s 328s tests/test_server.py:93: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testfrdlozji) 328s session_name = 'test_new_session', kill_session = False, attach = False 328s start_directory = None, window_name = None, window_command = None, x = None 328s y = None, environment = None, args = (), kwargs = {}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-stest_new_session', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________________ test_new_session_no_name ___________________________ 328s 328s server = Server(socket_name=libtmux_testr3j72ly1) 328s 328s def test_new_session_no_name(server: Server) -> None: 328s """Server.new_session works with no name.""" 328s > first_session = server.new_session() 328s 328s tests/test_server.py:100: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testr3j72ly1), session_name = None 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ____________________________ test_new_session_shell ____________________________ 328s 328s server = Server(socket_name=libtmux_testlesy_48o) 328s 328s def test_new_session_shell(server: Server) -> None: 328s """Verify ``Server.new_session`` creates valid session running w/ command.""" 328s cmd = "sleep 1m" 328s > mysession = server.new_session("test_new_session", window_command=cmd) 328s 328s tests/test_server.py:118: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testlesy_48o) 328s session_name = 'test_new_session', kill_session = False, attach = False 328s start_directory = None, window_name = None, window_command = 'sleep 1m' 328s x = None, y = None, environment = None, args = (), kwargs = {}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-stest_new_session', '-d', 'sleep 1m') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ________________________ test_new_session_width_height _________________________ 328s 328s server = Server(socket_name=libtmux_testyzaio24j) 328s 328s @pytest.mark.skipif(has_version("3.2"), reason="Wrong width returned with 3.2") 328s def test_new_session_width_height(server: Server) -> None: 328s """Verify ``Server.new_session`` creates valid session running w/ dimensions.""" 328s cmd = "/usr/bin/env PS1='$ ' sh" 328s > mysession = server.new_session( 328s "test_new_session_width_height", 328s window_command=cmd, 328s x=32, 328s y=32, 328s ) 328s 328s tests/test_server.py:137: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testyzaio24j) 328s session_name = 'test_new_session_width_height', kill_session = False 328s attach = False, start_directory = None, window_name = None 328s window_command = "/usr/bin/env PS1='$ ' sh", x = 32, y = 32, environment = None 328s args = (), kwargs = {}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-stest_new_session_width_height', '-d', '-x', 32, ...) 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s ___________________ test_new_session_environmental_variables ___________________ 328s 328s server = Server(socket_name=libtmux_testlsc51ak8) 328s caplog = <_pytest.logging.LogCaptureFixture object at 0xf67c8270> 328s 328s def test_new_session_environmental_variables( 328s server: Server, 328s caplog: pytest.LogCaptureFixture, 328s ) -> None: 328s """Server.new_session creates and returns valid session.""" 328s > my_session = server.new_session("test_new_session", environment={"FOO": "HI"}) 328s 328s tests/test_server.py:154: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testlsc51ak8) 328s session_name = 'test_new_session', kill_session = False, attach = False 328s start_directory = None, window_name = None, window_command = None, x = None 328s y = None, environment = {'FOO': 'HI'}, args = (), kwargs = {}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-stest_new_session', '-d', '-eFOO=HI') 328s k = 'FOO', v = 'HI', proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________________ test_with_server_is_alive ___________________________ 328s 328s server = Server(socket_name=libtmux_testazu3h6cj) 328s 328s def test_with_server_is_alive(server: Server) -> None: 328s """Verify is_alive() returns True when tmux server is alive.""" 328s > server.new_session() 328s 328s tests/test_server.py:184: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testazu3h6cj), session_name = None 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s __________________ test_raise_if_dead_does_not_raise_if_alive __________________ 328s 328s server = Server(socket_name=libtmux_test65lq91ga) 328s 328s def test_raise_if_dead_does_not_raise_if_alive(server: Server) -> None: 328s """Verify new_session() does not raise if tmux server is alive.""" 328s > server.new_session() 328s 328s tests/test_server.py:197: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_test65lq91ga), session_name = None 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _______________________________ test_new_session _______________________________ 328s 328s server = Server(socket_name=libtmux_testqd1whbnc) 328s 328s def test_new_session(server: Server) -> None: 328s """Server.new_session creates new session.""" 328s new_session_name = TEST_SESSION_PREFIX + next(namer) 328s > new_session = server.new_session(session_name=new_session_name, detach=True) 328s 328s tests/test_session.py:109: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testqd1whbnc) 328s session_name = 'libtmux_a0r5ls1p', kill_session = False, attach = False 328s start_directory = None, window_name = None, window_command = None, x = None 328s y = None, environment = None, args = (), kwargs = {'detach': True}, env = None 328s tmux_args = ('-P', '-F#{session_id}', '-slibtmux_a0r5ls1p', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s _________________________________ test_filter __________________________________ 328s 328s server = Server(socket_name=libtmux_testl2ny1hae) 328s 328s def test_filter(server: Server) -> None: 328s """Test self.filter() retrieves child object.""" 328s > sess = server.new_session("test") 328s 328s tests/test_tmuxobject.py:155: 328s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 328s 328s self = Server(socket_name=libtmux_testl2ny1hae), session_name = 'test' 328s kill_session = False, attach = False, start_directory = None, window_name = None 328s window_command = None, x = None, y = None, environment = None, args = () 328s kwargs = {}, env = None, tmux_args = ('-P', '-F#{session_id}', '-stest', '-d') 328s proc = 328s 328s def new_session( 328s self, 328s session_name: t.Optional[str] = None, 328s kill_session: bool = False, 328s attach: bool = False, 328s start_directory: t.Optional[str] = None, 328s window_name: t.Optional[str] = None, 328s window_command: t.Optional[str] = None, 328s x: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s y: t.Optional[t.Union[int, "DashLiteral"]] = None, 328s environment: t.Optional[t.Dict[str, str]] = None, 328s *args: t.Any, 328s **kwargs: t.Any, 328s ) -> Session: 328s """Create new session, returns new :class:`Session`. 328s 328s Uses ``-P`` flag to print session info, ``-F`` for return formatting 328s returns new Session object. 328s 328s ``$ tmux new-session -d`` will create the session in the background 328s ``$ tmux new-session -Ad`` will move to the session name if it already 328s exists. todo: make an option to handle this. 328s 328s Parameters 328s ---------- 328s session_name : str, optional 328s :: 328s 328s $ tmux new-session -s 328s attach : bool, optional 328s create session in the foreground. ``attach=False`` is equivalent 328s to:: 328s 328s $ tmux new-session -d 328s 328s Other Parameters 328s ---------------- 328s kill_session : bool, optional 328s Kill current session if ``$ tmux has-session``. 328s Useful for testing workspaces. 328s start_directory : str, optional 328s specifies the working directory in which the 328s new session is created. 328s window_name : str, optional 328s :: 328s 328s $ tmux new-session -n 328s window_command : str, optional 328s execute a command on starting the session. The window will close 328s when the command exits. NOTE: When this command exits the window 328s will close. This feature is useful for long-running processes 328s where the closing of the window upon completion is desired. 328s x : [int, str], optional 328s Force the specified width instead of the tmux default for a 328s detached session 328s y : [int, str], optional 328s Force the specified height instead of the tmux default for a 328s detached session 328s 328s Returns 328s ------- 328s :class:`Session` 328s 328s Raises 328s ------ 328s :exc:`exc.BadSessionName` 328s 328s Examples 328s -------- 328s Sessions can be created without a session name (0.14.2+): 328s 328s >>> server.new_session() 328s Session($2 2) 328s 328s Creating them in succession will enumerate IDs (via tmux): 328s 328s >>> server.new_session() 328s Session($3 3) 328s 328s With a `session_name`: 328s 328s >>> server.new_session(session_name='my session') 328s Session($4 my session) 328s """ 328s if session_name is not None: 328s session_check_name(session_name) 328s 328s if self.has_session(session_name): 328s if kill_session: 328s self.cmd("kill-session", "-t%s" % session_name) 328s logger.info("session %s exists. killed it." % session_name) 328s else: 328s raise exc.TmuxSessionExists( 328s "Session named %s exists" % session_name, 328s ) 328s 328s logger.debug(f"creating session {session_name}") 328s 328s env = os.environ.get("TMUX") 328s 328s if env: 328s del os.environ["TMUX"] 328s 328s tmux_args: t.Tuple[t.Union[str, int], ...] = ( 328s "-P", 328s "-F#{session_id}", # output 328s ) 328s 328s if session_name is not None: 328s tmux_args += (f"-s{session_name}",) 328s 328s if not attach: 328s tmux_args += ("-d",) 328s 328s if start_directory: 328s tmux_args += ("-c", start_directory) 328s 328s if window_name: 328s tmux_args += ("-n", window_name) 328s 328s if x is not None: 328s tmux_args += ("-x", x) 328s 328s if y is not None: 328s tmux_args += ("-y", y) 328s 328s if window_command: 328s tmux_args += (window_command,) 328s 328s if environment: 328s if has_gte_version("3.2"): 328s for k, v in environment.items(): 328s tmux_args += (f"-e{k}={v}",) 328s else: 328s logger.warning( 328s "Environment flag ignored, tmux 3.2 or newer required.", 328s ) 328s 328s proc = self.cmd("new-session", *tmux_args) 328s 328s if proc.stderr: 328s > raise exc.LibTmuxException(proc.stderr) 328s E libtmux.exc.LibTmuxException: ['server exited unexpectedly'] 328s 328s /usr/lib/python3/dist-packages/libtmux/server.py:500: LibTmuxException 328s =========================== short test summary info ============================ 328s FAILED tests/legacy_api/test_server.py::test_new_session - libtmux.exc.LibTmu... 328s FAILED tests/legacy_api/test_server.py::test_new_session_no_name - libtmux.ex... 328s FAILED tests/legacy_api/test_server.py::test_new_session_shell - libtmux.exc.... 328s FAILED tests/legacy_api/test_server.py::test_with_server_is_alive - libtmux.e... 328s FAILED tests/legacy_api/test_server.py::test_raise_if_dead_does_not_raise_if_alive 328s FAILED tests/legacy_api/test_session.py::test_new_session - libtmux.exc.LibTm... 328s FAILED tests/test_dataclasses.py::test_pane - libtmux.exc.LibTmuxException: [... 328s FAILED tests/test_server.py::test_new_session - libtmux.exc.LibTmuxException:... 328s FAILED tests/test_server.py::test_new_session_no_name - libtmux.exc.LibTmuxEx... 328s FAILED tests/test_server.py::test_new_session_shell - libtmux.exc.LibTmuxExce... 328s FAILED tests/test_server.py::test_new_session_width_height - libtmux.exc.LibT... 328s FAILED tests/test_server.py::test_new_session_environmental_variables - libtm... 328s FAILED tests/test_server.py::test_with_server_is_alive - libtmux.exc.LibTmuxE... 328s FAILED tests/test_server.py::test_raise_if_dead_does_not_raise_if_alive - lib... 328s FAILED tests/test_session.py::test_new_session - libtmux.exc.LibTmuxException... 328s FAILED tests/test_tmuxobject.py::test_filter - libtmux.exc.LibTmuxException: ... 328s ERROR tests/legacy_api/test_common.py::test_tmux_cmd_unicode - libtmux.exc.Li... 328s ERROR tests/legacy_api/test_pane.py::test_resize_pane - libtmux.exc.LibTmuxEx... 328s ERROR tests/legacy_api/test_pane.py::test_send_keys - libtmux.exc.LibTmuxExce... 328s ERROR tests/legacy_api/test_pane.py::test_set_height - libtmux.exc.LibTmuxExc... 328s ERROR tests/legacy_api/test_pane.py::test_set_width - libtmux.exc.LibTmuxExce... 328s ERROR tests/legacy_api/test_pane.py::test_capture_pane - libtmux.exc.LibTmuxE... 328s ERROR tests/legacy_api/test_server.py::test_has_session - libtmux.exc.LibTmux... 328s ERROR tests/legacy_api/test_server.py::test_getenv - libtmux.exc.LibTmuxExcep... 328s ERROR tests/legacy_api/test_session.py::test_has_session - libtmux.exc.LibTmu... 328s ERROR tests/legacy_api/test_session.py::test_select_window - libtmux.exc.LibT... 328s ERROR tests/legacy_api/test_session.py::test_select_window_returns_Window - l... 328s ERROR tests/legacy_api/test_session.py::test_attached_window - libtmux.exc.Li... 328s ERROR tests/legacy_api/test_session.py::test_attached_pane - libtmux.exc.LibT... 328s ERROR tests/legacy_api/test_session.py::test_session_rename - libtmux.exc.Lib... 328s ERROR tests/legacy_api/test_session.py::test_show_options - libtmux.exc.LibTm... 328s ERROR tests/legacy_api/test_session.py::test_set_show_options_single - libtmu... 328s ERROR tests/legacy_api/test_session.py::test_set_show_option - libtmux.exc.Li... 328s ERROR tests/legacy_api/test_session.py::test_empty_session_option_returns_None 328s ERROR tests/legacy_api/test_session.py::test_show_option_unknown - libtmux.ex... 328s ERROR tests/legacy_api/test_session.py::test_show_option_ambiguous - libtmux.... 328s ERROR tests/legacy_api/test_session.py::test_set_option_ambiguous - libtmux.e... 328s ERROR tests/legacy_api/test_session.py::test_set_option_invalid - libtmux.exc... 328s ERROR tests/legacy_api/test_session.py::test_show_environment - libtmux.exc.L... 328s ERROR tests/legacy_api/test_session.py::test_set_show_environment_single - li... 328s ERROR tests/legacy_api/test_session.py::test_show_environment_not_set - libtm... 328s ERROR tests/legacy_api/test_session.py::test_remove_environment - libtmux.exc... 328s ERROR tests/legacy_api/test_session.py::test_unset_environment - libtmux.exc.... 328s ERROR tests/legacy_api/test_session.py::test_periods_raise_badsessionname[hey.period-True] 328s ERROR tests/legacy_api/test_session.py::test_periods_raise_badsessionname[hey:its a colon-True] 328s ERROR tests/legacy_api/test_session.py::test_periods_raise_badsessionname[hey moo-False] 328s ERROR tests/legacy_api/test_session.py::test_cmd_inserts_session_id - libtmux... 328s ERROR tests/legacy_api/test_session.py::test_new_window_with_environment[environment0] 328s ERROR tests/legacy_api/test_session.py::test_new_window_with_environment[environment1] 328s ERROR tests/legacy_api/test_tmuxobject.py::test_find_where - libtmux.exc.LibT... 328s ERROR tests/legacy_api/test_tmuxobject.py::test_find_where_None - libtmux.exc... 328s ERROR tests/legacy_api/test_tmuxobject.py::test_find_where_multiple_infos - l... 328s ERROR tests/legacy_api/test_tmuxobject.py::test_where - libtmux.exc.LibTmuxEx... 328s ERROR tests/legacy_api/test_tmuxobject.py::test_get_by_id - libtmux.exc.LibTm... 328s ERROR tests/legacy_api/test_window.py::test_select_window - libtmux.exc.LibTm... 328s ERROR tests/legacy_api/test_window.py::test_fresh_window_data - libtmux.exc.L... 328s ERROR tests/legacy_api/test_window.py::test_newest_pane_data - libtmux.exc.Li... 328s ERROR tests/legacy_api/test_window.py::test_attached_pane - libtmux.exc.LibTm... 328s ERROR tests/legacy_api/test_window.py::test_split_window - libtmux.exc.LibTmu... 328s ERROR tests/legacy_api/test_window.py::test_split_window_shell - libtmux.exc.... 328s ERROR tests/legacy_api/test_window.py::test_split_window_horizontal - libtmux... 328s ERROR tests/legacy_api/test_window.py::test_window_rename[test-ha ha ha fjewlkjflwef] 328s ERROR tests/legacy_api/test_window.py::test_window_rename[test-hello \\ wazzup 0] 328s ERROR tests/legacy_api/test_window.py::test_kill_window - libtmux.exc.LibTmux... 328s ERROR tests/legacy_api/test_window.py::test_show_window_options - libtmux.exc... 328s ERROR tests/legacy_api/test_window.py::test_set_show_window_options - libtmux... 328s ERROR tests/legacy_api/test_window.py::test_empty_window_option_returns_None 328s ERROR tests/legacy_api/test_window.py::test_show_window_option - libtmux.exc.... 328s ERROR tests/legacy_api/test_window.py::test_show_window_option_unknown - libt... 328s ERROR tests/legacy_api/test_window.py::test_show_window_option_ambiguous - li... 328s ERROR tests/legacy_api/test_window.py::test_set_window_option_ambiguous - lib... 328s ERROR tests/legacy_api/test_window.py::test_set_window_option_invalid - libtm... 328s ERROR tests/legacy_api/test_window.py::test_move_window - libtmux.exc.LibTmux... 328s ERROR tests/legacy_api/test_window.py::test_move_window_to_other_session - li... 328s ERROR tests/legacy_api/test_window.py::test_select_layout_accepts_no_arg - li... 328s ERROR tests/legacy_api/test_window.py::test_empty_window_name - libtmux.exc.L... 328s ERROR tests/legacy_api/test_window.py::test_split_window_with_environment[environment0] 328s ERROR tests/legacy_api/test_window.py::test_split_window_with_environment[environment1] 328s ERROR tests/test_common.py::test_tmux_cmd_unicode - libtmux.exc.LibTmuxExcept... 328s ERROR tests/test_dataclasses.py::test_querylist - libtmux.exc.LibTmuxExceptio... 328s ERROR tests/test_pane.py::test_send_keys - libtmux.exc.LibTmuxException: ['se... 328s ERROR tests/test_pane.py::test_set_height - libtmux.exc.LibTmuxException: ['s... 328s ERROR tests/test_pane.py::test_set_width - libtmux.exc.LibTmuxException: ['se... 328s ERROR tests/test_pane.py::test_capture_pane - libtmux.exc.LibTmuxException: [... 328s ERROR tests/test_pane.py::test_capture_pane_start - libtmux.exc.LibTmuxExcept... 328s ERROR tests/test_pane.py::test_capture_pane_end - libtmux.exc.LibTmuxExceptio... 328s ERROR tests/test_pane.py::test_resize_pane - libtmux.exc.LibTmuxException: ['... 328s ERROR tests/test_server.py::test_has_session - libtmux.exc.LibTmuxException: ... 328s ERROR tests/test_server.py::test_getenv - libtmux.exc.LibTmuxException: ['ser... 328s ERROR tests/test_session.py::test_has_session - libtmux.exc.LibTmuxException:... 328s ERROR tests/test_session.py::test_select_window - libtmux.exc.LibTmuxExceptio... 328s ERROR tests/test_session.py::test_select_window_returns_Window - libtmux.exc.... 328s ERROR tests/test_session.py::test_attached_window - libtmux.exc.LibTmuxExcept... 328s ERROR tests/test_session.py::test_attached_pane - libtmux.exc.LibTmuxExceptio... 328s ERROR tests/test_session.py::test_session_rename - libtmux.exc.LibTmuxExcepti... 328s ERROR tests/test_session.py::test_show_options - libtmux.exc.LibTmuxException... 328s ERROR tests/test_session.py::test_set_show_options_single - libtmux.exc.LibTm... 328s ERROR tests/test_session.py::test_set_show_option - libtmux.exc.LibTmuxExcept... 328s ERROR tests/test_session.py::test_empty_session_option_returns_None - libtmux... 328s ERROR tests/test_session.py::test_show_option_unknown - libtmux.exc.LibTmuxEx... 328s ERROR tests/test_session.py::test_show_option_ambiguous - libtmux.exc.LibTmux... 328s ERROR tests/test_session.py::test_set_option_ambiguous - libtmux.exc.LibTmuxE... 328s ERROR tests/test_session.py::test_set_option_invalid - libtmux.exc.LibTmuxExc... 328s ERROR tests/test_session.py::test_show_environment - libtmux.exc.LibTmuxExcep... 328s ERROR tests/test_session.py::test_set_show_environment_single - libtmux.exc.L... 328s ERROR tests/test_session.py::test_show_environment_not_set - libtmux.exc.LibT... 328s ERROR tests/test_session.py::test_remove_environment - libtmux.exc.LibTmuxExc... 328s ERROR tests/test_session.py::test_unset_environment - libtmux.exc.LibTmuxExce... 328s ERROR tests/test_session.py::test_periods_raise_bad_session_name[hey.period-True] 328s ERROR tests/test_session.py::test_periods_raise_bad_session_name[hey:its a colon-True] 328s ERROR tests/test_session.py::test_periods_raise_bad_session_name[hey moo-False] 328s ERROR tests/test_session.py::test_cmd_inserts_session_id - libtmux.exc.LibTmu... 328s ERROR tests/test_session.py::test_new_window_with_environment[environment0] 328s ERROR tests/test_session.py::test_new_window_with_environment[environment1] 328s ERROR tests/test_tmuxobject.py::test_find_where - libtmux.exc.LibTmuxExceptio... 328s ERROR tests/test_tmuxobject.py::test_find_where_None - libtmux.exc.LibTmuxExc... 328s ERROR tests/test_tmuxobject.py::test_find_where_multiple_infos - libtmux.exc.... 328s ERROR tests/test_tmuxobject.py::test_where - libtmux.exc.LibTmuxException: ['... 328s ERROR tests/test_window.py::test_select_window - libtmux.exc.LibTmuxException... 328s ERROR tests/test_window.py::test_fresh_window_data - libtmux.exc.LibTmuxExcep... 328s ERROR tests/test_window.py::test_newest_pane_data - libtmux.exc.LibTmuxExcept... 328s ERROR tests/test_window.py::test_attached_pane - libtmux.exc.LibTmuxException... 328s ERROR tests/test_window.py::test_split_window - libtmux.exc.LibTmuxException:... 328s ERROR tests/test_window.py::test_split_window_shell - libtmux.exc.LibTmuxExce... 328s ERROR tests/test_window.py::test_split_window_horizontal - libtmux.exc.LibTmu... 328s ERROR tests/test_window.py::test_split_percentage - libtmux.exc.LibTmuxExcept... 328s ERROR tests/test_window.py::test_split_window_size - libtmux.exc.LibTmuxExcep... 328s ERROR tests/test_window.py::test_window_rename[test-ha ha ha fjewlkjflwef] - ... 328s ERROR tests/test_window.py::test_window_rename[test-hello \\ wazzup 0] - libt... 328s ERROR tests/test_window.py::test_kill_window - libtmux.exc.LibTmuxException: ... 328s ERROR tests/test_window.py::test_show_window_options - libtmux.exc.LibTmuxExc... 328s ERROR tests/test_window.py::test_set_show_window_options - libtmux.exc.LibTmu... 328s ERROR tests/test_window.py::test_empty_window_option_returns_None - libtmux.e... 328s ERROR tests/test_window.py::test_show_window_option - libtmux.exc.LibTmuxExce... 328s ERROR tests/test_window.py::test_show_window_option_unknown - libtmux.exc.Lib... 328s ERROR tests/test_window.py::test_show_window_option_ambiguous - libtmux.exc.L... 328s ERROR tests/test_window.py::test_set_window_option_ambiguous - libtmux.exc.Li... 328s ERROR tests/test_window.py::test_set_window_option_invalid - libtmux.exc.LibT... 328s ERROR tests/test_window.py::test_move_window - libtmux.exc.LibTmuxException: ... 328s ERROR tests/test_window.py::test_move_window_to_other_session - libtmux.exc.L... 328s ERROR tests/test_window.py::test_select_layout_accepts_no_arg - libtmux.exc.L... 328s ERROR tests/test_window.py::test_empty_window_name - libtmux.exc.LibTmuxExcep... 328s ERROR tests/test_window.py::test_split_window_with_environment[environment0] 328s ERROR tests/test_window.py::test_split_window_with_environment[environment1] 328s ERROR tests/test_window.py::test_resize - libtmux.exc.LibTmuxException: ['ser... 328s ===== 16 failed, 138 passed, 4 skipped, 7 deselected, 129 errors in 54.87s ===== 329s autopkgtest [09:54:03]: test pytest: -----------------------] 333s pytest FAIL non-zero exit status 1 333s autopkgtest [09:54:07]: test pytest: - - - - - - - - - - results - - - - - - - - - - 336s autopkgtest [09:54:10]: test autodep8-python3: preparing testbed 373s autopkgtest [09:54:47]: testbed dpkg architecture: armhf 375s autopkgtest [09:54:49]: testbed apt version: 2.7.12 375s autopkgtest [09:54:49]: @@@@@@@@@@@@@@@@@@@@ test bed setup 382s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 383s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [56.0 kB] 383s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [7592 B] 383s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [494 kB] 383s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [4022 kB] 383s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main armhf Packages [669 kB] 383s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main armhf c-n-f Metadata [2492 B] 383s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf Packages [1372 B] 383s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf c-n-f Metadata [116 B] 383s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf Packages [4072 kB] 383s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf c-n-f Metadata [7776 B] 383s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf Packages [49.1 kB] 383s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf c-n-f Metadata [116 B] 386s Fetched 9499 kB in 2s (4902 kB/s) 386s Reading package lists... 392s sh: 1: dhclient: not found 393s tee: /proc/self/fd/2: Permission denied 415s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 415s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 415s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 415s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 416s Reading package lists... 416s Reading package lists... 416s Building dependency tree... 416s Reading state information... 417s Calculating upgrade... 417s The following packages were automatically installed and are no longer required: 417s linux-headers-6.8.0-11 python3-distutils python3-lib2to3 417s Use 'apt autoremove' to remove them. 417s The following packages will be REMOVED: 417s libapt-pkg6.0 libarchive13 libatm1 libcurl3-gnutls libcurl4 libdb5.3 libelf1 417s libext2fs2 libgdbm-compat4 libgdbm6 libglib2.0-0 libgnutls30 libgpgme11 417s libhogweed6 libmagic1 libnetplan0 libnettle8 libnpth0 libnvme1 libparted2 417s libpcap0.8 libperl5.38 libpng16-16 libpsl5 libreadline8 libreiserfscore0 417s libssl3 libtirpc3 libuv1 linux-headers-6.8.0-11-generic 417s The following NEW packages will be installed: 417s libapt-pkg6.0t64 libarchive13t64 libatm1t64 libcurl3t64-gnutls libcurl4t64 417s libdb5.3t64 libelf1t64 libext2fs2t64 libgdbm-compat4t64 libgdbm6t64 417s libglib2.0-0t64 libgnutls30t64 libgpgme11t64 libhogweed6t64 libmagic1t64 417s libnetplan1 libnettle8t64 libnpth0t64 libnvme1t64 libparted2t64 417s libpcap0.8t64 libperl5.38t64 libpng16-16t64 libpsl5t64 libreadline8t64 417s libreiserfscore0t64 libssl3t64 libtirpc3t64 libuv1t64 linux-headers-6.8.0-20 417s linux-headers-6.8.0-20-generic xdg-user-dirs 417s The following packages have been kept back: 417s multipath-tools 417s The following packages will be upgraded: 417s apparmor apt apt-utils bind9-dnsutils bind9-host bind9-libs binutils 417s binutils-arm-linux-gnueabihf binutils-common bolt bsdextrautils bsdutils 417s btrfs-progs coreutils cryptsetup-bin curl dbus dbus-bin dbus-daemon 417s dbus-session-bus-common dbus-system-bus-common dbus-user-session dhcpcd-base 417s dirmngr dmsetup dpkg dpkg-dev e2fsprogs e2fsprogs-l10n eject fdisk file ftp 417s fwupd gawk gcc-13-base gcc-14-base gir1.2-girepository-2.0 gir1.2-glib-2.0 417s gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpgconf gpgsm gpgv 417s groff-base ibverbs-providers inetutils-telnet info initramfs-tools 417s initramfs-tools-bin initramfs-tools-core install-info iproute2 jq keyboxd 417s kmod kpartx krb5-locales libapparmor1 libaudit-common libaudit1 libbinutils 417s libblkid1 libblockdev-crypto3 libblockdev-fs3 libblockdev-loop3 417s libblockdev-mdraid3 libblockdev-nvme3 libblockdev-part3 libblockdev-swap3 417s libblockdev-utils3 libblockdev3 libbpf1 libbrotli1 libcap-ng0 libcom-err2 417s libcryptsetup12 libctf-nobfd0 libctf0 libdbus-1-3 libdebconfclient0 417s libdevmapper1.02.1 libdpkg-perl libevent-core-2.1-7 libexpat1 libfdisk1 417s libfido2-1 libftdi1-2 libfwupd2 libgcc-s1 libgirepository-1.0-1 417s libglib2.0-data libgssapi-krb5-2 libgudev-1.0-0 libgusb2 libibverbs1 417s libjcat1 libjq1 libjson-glib-1.0-0 libjson-glib-1.0-common libk5crypto3 417s libkmod2 libkrb5-3 libkrb5support0 libldap-common libldap2 417s liblocale-gettext-perl liblzma5 libmagic-mgc libmbim-glib4 libmbim-proxy 417s libmm-glib0 libmount1 libnghttp2-14 libnsl2 libnss-systemd libpam-modules 417s libpam-modules-bin libpam-runtime libpam-systemd libpam0g libplymouth5 417s libpolkit-agent-1-0 libpolkit-gobject-1-0 libproc2-0 libprotobuf-c1 417s libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib 417s libpython3.12-minimal libpython3.12-stdlib libqmi-glib5 libqmi-proxy 417s libqrtr-glib0 librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db 417s libseccomp2 libselinux1 libsemanage-common libsemanage2 libsframe1 libslang2 417s libsmartcols1 libsqlite3-0 libss2 libssh-4 libstdc++6 libsystemd-shared 417s libsystemd0 libtext-charwidth-perl libtext-iconv-perl libtirpc-common 417s libudev1 libudisks2-0 libusb-1.0-0 libuuid1 libvolume-key1 libxml2 libxmlb2 417s libxmuu1 linux-headers-generic logsave lshw lsof man-db mount mtr-tiny 417s netplan-generator netplan.io openssh-client openssh-server 417s openssh-sftp-server openssl parted perl perl-base perl-modules-5.38 417s pinentry-curses plymouth plymouth-theme-ubuntu-text procps psmisc 417s python-apt-common python3 python3-apt python3-cryptography python3-dbus 417s python3-distutils python3-gdbm python3-gi python3-lib2to3 python3-minimal 417s python3-netplan python3-pkg-resources python3-pyrsistent python3-setuptools 417s python3-typing-extensions python3-yaml python3.11 python3.11-minimal 417s python3.12 python3.12-minimal readline-common rsync rsyslog shared-mime-info 417s sudo systemd systemd-dev systemd-resolved systemd-sysv systemd-timesyncd 417s tcpdump telnet tnftp ubuntu-pro-client ubuntu-pro-client-l10n udev udisks2 417s usb.ids util-linux uuid-runtime vim-common vim-tiny wget xxd xz-utils zlib1g 417s 234 upgraded, 32 newly installed, 30 to remove and 1 not upgraded. 417s Need to get 100 MB of archives. 417s After this operation, 85.0 MB of additional disk space will be used. 417s Get:1 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bsdutils armhf 1:2.39.3-9ubuntu2 [102 kB] 418s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libbrotli1 armhf 1.1.0-2build1 [319 kB] 418s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgssapi-krb5-2 armhf 1.20.1-6ubuntu1 [119 kB] 418s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libkrb5-3 armhf 1.20.1-6ubuntu1 [320 kB] 418s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libkrb5support0 armhf 1.20.1-6ubuntu1 [31.5 kB] 418s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libk5crypto3 armhf 1.20.1-6ubuntu1 [78.6 kB] 418s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcom-err2 armhf 1.47.0-2.4~exp1ubuntu2 [21.9 kB] 418s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/main armhf zlib1g armhf 1:1.3.dfsg-3.1ubuntu1 [49.2 kB] 418s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/main armhf librtmp1 armhf 2.4+20151223.gitfa8646d.1-2build6 [51.3 kB] 418s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/main armhf udisks2 armhf 2.10.1-6 [276 kB] 418s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libudisks2-0 armhf 2.10.1-6 [143 kB] 418s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblkid1 armhf 2.39.3-9ubuntu2 [160 kB] 418s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/main armhf liblzma5 armhf 5.6.0-0.2 [117 kB] 418s Get:14 http://ftpmaster.internal/ubuntu noble-proposed/main armhf kmod armhf 31+20240202-2ubuntu4 [91.8 kB] 418s Get:15 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libkmod2 armhf 31+20240202-2ubuntu4 [44.9 kB] 418s Get:16 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-dev all 255.4-1ubuntu5 [103 kB] 418s Get:17 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-timesyncd armhf 255.4-1ubuntu5 [36.0 kB] 418s Get:18 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-session-bus-common all 1.14.10-4ubuntu2 [80.3 kB] 418s Get:19 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libaudit-common all 1:3.1.2-2.1 [5674 B] 418s Get:20 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcap-ng0 armhf 0.8.4-2build1 [13.5 kB] 418s Get:21 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libaudit1 armhf 1:3.1.2-2.1 [44.3 kB] 418s Get:22 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam0g armhf 1.5.3-5ubuntu3 [62.0 kB] 418s Get:23 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libselinux1 armhf 3.5-2ubuntu1 [70.9 kB] 418s Get:24 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcurl4t64 armhf 8.5.0-2ubuntu8 [296 kB] 418s Get:25 http://ftpmaster.internal/ubuntu noble-proposed/main armhf curl armhf 8.5.0-2ubuntu8 [219 kB] 418s Get:26 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpsl5t64 armhf 0.21.2-1.1 [55.7 kB] 418s Get:27 http://ftpmaster.internal/ubuntu noble-proposed/main armhf wget armhf 1.21.4-1ubuntu2 [317 kB] 418s Get:28 http://ftpmaster.internal/ubuntu noble-proposed/main armhf tnftp armhf 20230507-2build1 [98.6 kB] 418s Get:29 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpcap0.8t64 armhf 1.10.4-4.1ubuntu2 [137 kB] 418s Get:30 http://ftpmaster.internal/ubuntu noble-proposed/main armhf tcpdump armhf 4.99.4-3ubuntu2 [425 kB] 418s Get:31 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsystemd-shared armhf 255.4-1ubuntu5 [2009 kB] 418s Get:32 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-resolved armhf 255.4-1ubuntu5 [289 kB] 418s Get:33 http://ftpmaster.internal/ubuntu noble-proposed/main armhf sudo armhf 1.9.15p5-3ubuntu3 [936 kB] 418s Get:34 http://ftpmaster.internal/ubuntu noble-proposed/main armhf rsync armhf 3.2.7-1build1 [413 kB] 418s Get:35 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-cryptography armhf 41.0.7-4build2 [788 kB] 418s Get:36 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssl armhf 3.0.13-0ubuntu2 [975 kB] 418s Get:37 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssh-sftp-server armhf 1:9.6p1-3ubuntu11 [35.5 kB] 418s Get:38 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssh-client armhf 1:9.6p1-3ubuntu11 [890 kB] 418s Get:39 http://ftpmaster.internal/ubuntu noble-proposed/main armhf openssh-server armhf 1:9.6p1-3ubuntu11 [503 kB] 418s Get:40 http://ftpmaster.internal/ubuntu noble-proposed/main armhf linux-headers-6.8.0-20 all 6.8.0-20.20 [13.6 MB] 419s Get:41 http://ftpmaster.internal/ubuntu noble-proposed/main armhf linux-headers-6.8.0-20-generic armhf 6.8.0-20.20 [1287 kB] 419s Get:42 http://ftpmaster.internal/ubuntu noble-proposed/main armhf linux-headers-generic armhf 6.8.0-20.20+1 [9610 B] 419s Get:43 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libssl3t64 armhf 3.0.13-0ubuntu2 [1558 kB] 419s Get:44 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnss-systemd armhf 255.4-1ubuntu5 [148 kB] 419s Get:45 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libudev1 armhf 255.4-1ubuntu5 [166 kB] 419s Get:46 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd armhf 255.4-1ubuntu5 [3502 kB] 419s Get:47 http://ftpmaster.internal/ubuntu noble-proposed/main armhf udev armhf 255.4-1ubuntu5 [1852 kB] 419s Get:48 http://ftpmaster.internal/ubuntu noble-proposed/main armhf systemd-sysv armhf 255.4-1ubuntu5 [11.9 kB] 419s Get:49 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-systemd armhf 255.4-1ubuntu5 [216 kB] 419s Get:50 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsystemd0 armhf 255.4-1ubuntu5 [410 kB] 419s Get:51 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-modules-bin armhf 1.5.3-5ubuntu3 [47.0 kB] 419s Get:52 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-modules armhf 1.5.3-5ubuntu3 [261 kB] 419s Get:53 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpam-runtime all 1.5.3-5ubuntu3 [40.8 kB] 419s Get:54 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-user-session armhf 1.14.10-4ubuntu2 [9962 B] 419s Get:55 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libapparmor1 armhf 4.0.0-beta3-0ubuntu2 [45.0 kB] 419s Get:56 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gcc-14-base armhf 14-20240315-1ubuntu1 [47.0 kB] 419s Get:57 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgcc-s1 armhf 14-20240315-1ubuntu1 [41.5 kB] 419s Get:58 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libstdc++6 armhf 14-20240315-1ubuntu1 [714 kB] 419s Get:59 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libexpat1 armhf 2.6.1-2 [65.9 kB] 419s Get:60 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-system-bus-common all 1.14.10-4ubuntu2 [81.5 kB] 419s Get:61 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-bin armhf 1.14.10-4ubuntu2 [37.1 kB] 419s Get:62 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus armhf 1.14.10-4ubuntu2 [28.1 kB] 419s Get:63 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dbus-daemon armhf 1.14.10-4ubuntu2 [109 kB] 419s Get:64 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdbus-1-3 armhf 1.14.10-4ubuntu2 [190 kB] 419s Get:65 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmount1 armhf 2.39.3-9ubuntu2 [171 kB] 419s Get:66 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libseccomp2 armhf 2.5.5-1ubuntu2 [49.5 kB] 419s Get:67 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdevmapper1.02.1 armhf 2:1.02.185-3ubuntu2 [135 kB] 419s Get:68 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libuuid1 armhf 2.39.3-9ubuntu2 [34.4 kB] 419s Get:69 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcryptsetup12 armhf 2:2.7.0-1ubuntu2 [238 kB] 419s Get:70 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libfdisk1 armhf 2.39.3-9ubuntu2 [196 kB] 419s Get:71 http://ftpmaster.internal/ubuntu noble-proposed/main armhf mount armhf 2.39.3-9ubuntu2 [134 kB] 419s Get:72 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-utils3 armhf 3.1.0-1build1 [16.9 kB] 419s Get:73 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libvolume-key1 armhf 0.3.12-7build1 [38.4 kB] 419s Get:74 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjcat1 armhf 0.2.0-2build2 [30.4 kB] 419s Get:75 http://ftpmaster.internal/ubuntu noble-proposed/main armhf parted armhf 3.6-3.1build2 [39.4 kB] 419s Get:76 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libparted2t64 armhf 3.6-3.1build2 [143 kB] 419s Get:77 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.12 armhf 3.12.2-4build3 [645 kB] 419s Get:78 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.12-minimal armhf 3.12.2-4build3 [1942 kB] 419s Get:79 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.12-stdlib armhf 3.12.2-4build3 [1906 kB] 419s Get:80 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.12-minimal armhf 3.12.2-4build3 [816 kB] 419s Get:81 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsasl2-modules-db armhf 2.1.28+dfsg1-5ubuntu1 [19.0 kB] 419s Get:82 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.11 armhf 3.11.8-1build4 [589 kB] 419s Get:83 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3.11-minimal armhf 3.11.8-1build4 [1795 kB] 419s Get:84 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.11-stdlib armhf 3.11.8-1build4 [1810 kB] 419s Get:85 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3.11-minimal armhf 3.11.8-1build4 [826 kB] 419s Get:86 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsqlite3-0 armhf 3.45.1-1ubuntu1 [599 kB] 419s Get:87 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtext-iconv-perl armhf 1.7-8build2 [12.7 kB] 419s Get:88 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtext-charwidth-perl armhf 0.04-11build2 [8962 B] 419s Get:89 http://ftpmaster.internal/ubuntu noble-proposed/main armhf perl-modules-5.38 all 5.38.2-3.2 [3110 kB] 419s Get:90 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdb5.3t64 armhf 5.3.28+dfsg2-6 [661 kB] 419s Get:91 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-gdbm armhf 3.12.2-3ubuntu1.1 [17.1 kB] 419s Get:92 http://ftpmaster.internal/ubuntu noble-proposed/main armhf man-db armhf 2.12.0-3build4 [1196 kB] 419s Get:93 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgdbm6t64 armhf 1.23-5.1 [30.3 kB] 419s Get:94 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgdbm-compat4t64 armhf 1.23-5.1 [6208 B] 419s Get:95 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libperl5.38t64 armhf 5.38.2-3.2 [4101 kB] 420s Get:96 http://ftpmaster.internal/ubuntu noble-proposed/main armhf perl armhf 5.38.2-3.2 [231 kB] 420s Get:97 http://ftpmaster.internal/ubuntu noble-proposed/main armhf perl-base armhf 5.38.2-3.2 [1671 kB] 420s Get:98 http://ftpmaster.internal/ubuntu noble-proposed/main armhf liblocale-gettext-perl armhf 1.07-6ubuntu4 [15.0 kB] 420s Get:99 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnettle8t64 armhf 3.9.1-2.2 [187 kB] 420s Get:100 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libhogweed6t64 armhf 3.9.1-2.2 [187 kB] 420s Get:101 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgnutls30t64 armhf 3.8.3-1.1ubuntu2 [1046 kB] 420s Get:102 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libldap2 armhf 2.6.7+dfsg-1~exp1ubuntu6 [172 kB] 420s Get:103 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libcurl3t64-gnutls armhf 8.5.0-2ubuntu8 [290 kB] 420s Get:104 http://ftpmaster.internal/ubuntu noble-proposed/main armhf shared-mime-info armhf 2.4-1build1 [470 kB] 420s Get:105 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gir1.2-girepository-2.0 armhf 1.79.1-1ubuntu6 [24.8 kB] 420s Get:106 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gir1.2-glib-2.0 armhf 2.79.3-3ubuntu5 [182 kB] 420s Get:107 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgirepository-1.0-1 armhf 1.79.1-1ubuntu6 [106 kB] 420s Get:108 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-gi armhf 3.47.0-3build1 [219 kB] 420s Get:109 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-dbus armhf 1.3.2-5build2 [94.7 kB] 420s Get:110 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnetplan1 armhf 1.0-1 [113 kB] 420s Get:111 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-netplan armhf 1.0-1 [22.5 kB] 420s Get:112 http://ftpmaster.internal/ubuntu noble-proposed/main armhf netplan-generator armhf 1.0-1 [58.7 kB] 420s Get:113 http://ftpmaster.internal/ubuntu noble-proposed/main armhf initramfs-tools-bin armhf 0.142ubuntu23 [20.3 kB] 420s Get:114 http://ftpmaster.internal/ubuntu noble-proposed/main armhf initramfs-tools-core all 0.142ubuntu23 [50.1 kB] 420s Get:115 http://ftpmaster.internal/ubuntu noble-proposed/main armhf initramfs-tools all 0.142ubuntu23 [9058 B] 420s Get:116 http://ftpmaster.internal/ubuntu noble-proposed/main armhf netplan.io armhf 1.0-1 [64.3 kB] 420s Get:117 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libxmlb2 armhf 0.3.15-1build1 [57.0 kB] 420s Get:118 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libqrtr-glib0 armhf 1.2.2-1ubuntu3 [15.4 kB] 420s Get:119 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libqmi-glib5 armhf 1.35.2-0ubuntu1 [908 kB] 420s Get:120 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libqmi-proxy armhf 1.35.2-0ubuntu1 [5732 B] 420s Get:121 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpolkit-agent-1-0 armhf 124-1ubuntu1 [15.3 kB] 420s Get:122 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpolkit-gobject-1-0 armhf 124-1ubuntu1 [44.1 kB] 420s Get:123 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libglib2.0-0t64 armhf 2.79.3-3ubuntu5 [1414 kB] 420s Get:124 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libfwupd2 armhf 1.9.15-2 [123 kB] 420s Get:125 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libarchive13t64 armhf 3.7.2-1.1ubuntu2 [330 kB] 420s Get:126 http://ftpmaster.internal/ubuntu noble-proposed/main armhf fwupd armhf 1.9.15-2 [4350 kB] 421s Get:127 http://ftpmaster.internal/ubuntu noble-proposed/main armhf apt-utils armhf 2.7.14 [210 kB] 421s Get:128 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libapt-pkg6.0t64 armhf 2.7.14 [986 kB] 421s Get:129 http://ftpmaster.internal/ubuntu noble-proposed/main armhf apt armhf 2.7.14 [1368 kB] 421s Get:130 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ubuntu-pro-client-l10n armhf 31.2.2 [19.4 kB] 421s Get:131 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ubuntu-pro-client armhf 31.2.2 [216 kB] 421s Get:132 http://ftpmaster.internal/ubuntu noble-proposed/main armhf keyboxd armhf 2.4.4-2ubuntu15 [111 kB] 421s Get:133 http://ftpmaster.internal/ubuntu noble/main armhf libnpth0t64 armhf 1.6-3.1 [6940 B] 421s Get:134 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpgv armhf 2.4.4-2ubuntu15 [224 kB] 421s Get:135 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpg armhf 2.4.4-2ubuntu15 [524 kB] 421s Get:136 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpg-wks-client armhf 2.4.4-2ubuntu15 [87.4 kB] 421s Get:137 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gnupg-utils armhf 2.4.4-2ubuntu15 [158 kB] 421s Get:138 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpg-agent armhf 2.4.4-2ubuntu15 [235 kB] 421s Get:139 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpgsm armhf 2.4.4-2ubuntu15 [241 kB] 421s Get:140 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libreadline8t64 armhf 8.2-4 [129 kB] 421s Get:141 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gawk armhf 1:5.2.1-2build2 [415 kB] 421s Get:142 http://ftpmaster.internal/ubuntu noble-proposed/main armhf fdisk armhf 2.39.3-9ubuntu2 [135 kB] 421s Get:143 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gpgconf armhf 2.4.4-2ubuntu15 [115 kB] 421s Get:144 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dirmngr armhf 2.4.4-2ubuntu15 [346 kB] 421s Get:145 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gnupg all 2.4.4-2ubuntu15 [359 kB] 421s Get:146 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-apt armhf 2.7.7 [162 kB] 421s Get:147 http://ftpmaster.internal/ubuntu noble-proposed/main armhf pinentry-curses armhf 1.2.1-3ubuntu4 [36.7 kB] 421s Get:148 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-yaml armhf 6.0.1-2build1 [117 kB] 421s Get:149 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python-apt-common all 2.7.7 [19.8 kB] 421s Get:150 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-setuptools all 68.1.2-2ubuntu1 [396 kB] 421s Get:151 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-pkg-resources all 68.1.2-2ubuntu1 [168 kB] 421s Get:152 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dpkg armhf 1.22.6ubuntu4 [1229 kB] 421s Get:153 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-minimal armhf 3.12.2-0ubuntu1 [27.1 kB] 421s Get:154 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3 armhf 3.12.2-0ubuntu1 [24.1 kB] 421s Get:155 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpython3-stdlib armhf 3.12.2-0ubuntu1 [9802 B] 421s Get:156 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsmartcols1 armhf 2.39.3-9ubuntu2 [117 kB] 421s Get:157 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bsdextrautils armhf 2.39.3-9ubuntu2 [78.7 kB] 421s Get:158 http://ftpmaster.internal/ubuntu noble-proposed/main armhf groff-base armhf 1.23.0-3build1 [946 kB] 421s Get:159 http://ftpmaster.internal/ubuntu noble-proposed/main armhf readline-common all 8.2-4 [56.4 kB] 421s Get:160 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgpgme11t64 armhf 1.18.0-4.1ubuntu3 [120 kB] 421s Get:161 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-crypto3 armhf 3.1.0-1build1 [20.3 kB] 421s Get:162 http://ftpmaster.internal/ubuntu noble-proposed/main armhf e2fsprogs-l10n all 1.47.0-2.4~exp1ubuntu2 [5996 B] 421s Get:163 http://ftpmaster.internal/ubuntu noble-proposed/main armhf logsave armhf 1.47.0-2.4~exp1ubuntu2 [21.9 kB] 421s Get:164 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dhcpcd-base armhf 1:10.0.6-1ubuntu2 [186 kB] 421s Get:165 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-fs3 armhf 3.1.0-1build1 [34.4 kB] 421s Get:166 http://ftpmaster.internal/ubuntu noble/main armhf libreiserfscore0t64 armhf 1:3.6.27-7.1 [66.2 kB] 421s Get:167 http://ftpmaster.internal/ubuntu noble-proposed/main armhf btrfs-progs armhf 6.6.3-1.1build1 [852 kB] 421s Get:168 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libext2fs2t64 armhf 1.47.0-2.4~exp1ubuntu2 [201 kB] 421s Get:169 http://ftpmaster.internal/ubuntu noble-proposed/main armhf e2fsprogs armhf 1.47.0-2.4~exp1ubuntu2 [571 kB] 421s Get:170 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-loop3 armhf 3.1.0-1build1 [6502 B] 421s Get:171 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-mdraid3 armhf 3.1.0-1build1 [13.3 kB] 421s Get:172 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-nvme3 armhf 3.1.0-1build1 [17.5 kB] 421s Get:173 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnvme1t64 armhf 1.8-3 [67.5 kB] 421s Get:174 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-part3 armhf 3.1.0-1build1 [16.4 kB] 421s Get:175 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev-swap3 armhf 3.1.0-1build1 [8894 B] 421s Get:176 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libblockdev3 armhf 3.1.0-1build1 [42.9 kB] 421s Get:177 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgudev-1.0-0 armhf 1:238-3ubuntu2 [13.6 kB] 421s Get:178 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libxml2 armhf 2.9.14+dfsg-1.3ubuntu2 [595 kB] 421s Get:179 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libbpf1 armhf 1:1.3.0-2build1 [146 kB] 421s Get:180 http://ftpmaster.internal/ubuntu noble-proposed/main armhf iproute2 armhf 6.1.0-1ubuntu5 [1060 kB] 421s Get:181 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libelf1t64 armhf 0.190-1.1build2 [49.9 kB] 421s Get:182 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtirpc-common all 1.3.4+ds-1.1 [8018 B] 421s Get:183 http://ftpmaster.internal/ubuntu noble-proposed/main armhf lsof armhf 4.95.0-1build2 [248 kB] 421s Get:184 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnsl2 armhf 1.3.0-3build2 [36.5 kB] 421s Get:185 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libtirpc3t64 armhf 1.3.4+ds-1.1 [73.2 kB] 421s Get:186 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmbim-proxy armhf 1.31.2-0ubuntu2 [5748 B] 421s Get:187 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmbim-glib4 armhf 1.31.2-0ubuntu2 [216 kB] 421s Get:188 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjson-glib-1.0-common all 1.8.0-2build1 [4210 B] 421s Get:189 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjson-glib-1.0-0 armhf 1.8.0-2build1 [61.2 kB] 421s Get:190 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libnghttp2-14 armhf 1.59.0-1build1 [68.1 kB] 421s Get:191 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libssh-4 armhf 0.10.6-2build1 [169 kB] 421s Get:192 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libusb-1.0-0 armhf 2:1.0.27-1 [48.7 kB] 421s Get:193 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libgusb2 armhf 0.4.8-1build1 [34.6 kB] 421s Get:194 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmm-glib0 armhf 1.23.4-0ubuntu1 [214 kB] 421s Get:195 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libprotobuf-c1 armhf 1.4.1-1ubuntu3 [17.7 kB] 421s Get:196 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsasl2-2 armhf 2.1.28+dfsg1-5ubuntu1 [49.7 kB] 421s Get:197 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libibverbs1 armhf 50.0-2build1 [57.9 kB] 421s Get:198 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libfido2-1 armhf 1.14.0-1build1 [75.8 kB] 421s Get:199 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libproc2-0 armhf 2:4.0.4-4ubuntu2 [49.0 kB] 421s Get:200 http://ftpmaster.internal/ubuntu noble-proposed/main armhf procps armhf 2:4.0.4-4ubuntu2 [700 kB] 421s Get:201 http://ftpmaster.internal/ubuntu noble-proposed/main armhf coreutils armhf 9.4-3ubuntu3 [1280 kB] 421s Get:202 http://ftpmaster.internal/ubuntu noble-proposed/main armhf util-linux armhf 2.39.3-9ubuntu2 [1216 kB] 422s Get:203 http://ftpmaster.internal/ubuntu noble-proposed/main armhf file armhf 1:5.45-3 [21.1 kB] 422s Get:204 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmagic-mgc armhf 1:5.45-3 [307 kB] 422s Get:205 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libmagic1t64 armhf 1:5.45-3 [81.4 kB] 422s Get:206 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libplymouth5 armhf 24.004.60-1ubuntu6 [140 kB] 422s Get:207 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libpng16-16t64 armhf 1.6.43-3 [166 kB] 422s Get:208 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bind9-host armhf 1:9.18.24-0ubuntu3 [47.4 kB] 422s Get:209 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bind9-dnsutils armhf 1:9.18.24-0ubuntu3 [149 kB] 422s Get:210 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bind9-libs armhf 1:9.18.24-0ubuntu3 [1148 kB] 422s Get:211 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libuv1t64 armhf 1.48.0-1.1 [82.9 kB] 422s Get:212 http://ftpmaster.internal/ubuntu noble-proposed/main armhf uuid-runtime armhf 2.39.3-9ubuntu2 [41.7 kB] 422s Get:213 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdebconfclient0 armhf 0.271ubuntu2 [10.8 kB] 422s Get:214 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsemanage-common all 3.5-1build4 [10.1 kB] 422s Get:215 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsemanage2 armhf 3.5-1build4 [84.5 kB] 422s Get:216 http://ftpmaster.internal/ubuntu noble-proposed/main armhf install-info armhf 7.1-3build1 [60.5 kB] 422s Get:217 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gcc-13-base armhf 13.2.0-21ubuntu1 [48.3 kB] 422s Get:218 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libss2 armhf 1.47.0-2.4~exp1ubuntu2 [14.7 kB] 422s Get:219 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dmsetup armhf 2:1.02.185-3ubuntu2 [81.1 kB] 422s Get:220 http://ftpmaster.internal/ubuntu noble-proposed/main armhf eject armhf 2.39.3-9ubuntu2 [43.2 kB] 422s Get:221 http://ftpmaster.internal/ubuntu noble-proposed/main armhf krb5-locales all 1.20.1-6ubuntu1 [13.8 kB] 422s Get:222 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libglib2.0-data all 2.79.3-3ubuntu5 [46.6 kB] 422s Get:223 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libslang2 armhf 2.3.3-3build1 [478 kB] 422s Get:224 http://ftpmaster.internal/ubuntu noble-proposed/main armhf rsyslog armhf 8.2312.0-3ubuntu7 [460 kB] 422s Get:225 http://ftpmaster.internal/ubuntu noble-proposed/main armhf vim-tiny armhf 2:9.1.0016-1ubuntu6 [665 kB] 422s Get:226 http://ftpmaster.internal/ubuntu noble-proposed/main armhf vim-common all 2:9.1.0016-1ubuntu6 [385 kB] 422s Get:227 http://ftpmaster.internal/ubuntu noble/main armhf xdg-user-dirs armhf 0.18-1 [17.3 kB] 422s Get:228 http://ftpmaster.internal/ubuntu noble-proposed/main armhf xxd armhf 2:9.1.0016-1ubuntu6 [62.5 kB] 422s Get:229 http://ftpmaster.internal/ubuntu noble-proposed/main armhf apparmor armhf 4.0.0-beta3-0ubuntu2 [562 kB] 422s Get:230 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ftp all 20230507-2build1 [4724 B] 422s Get:231 http://ftpmaster.internal/ubuntu noble-proposed/main armhf inetutils-telnet armhf 2:2.5-3ubuntu3 [90.7 kB] 422s Get:232 http://ftpmaster.internal/ubuntu noble-proposed/main armhf info armhf 7.1-3build1 [127 kB] 422s Get:233 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libxmuu1 armhf 2:1.1.3-3build1 [8004 B] 422s Get:234 http://ftpmaster.internal/ubuntu noble-proposed/main armhf lshw armhf 02.19.git.2021.06.19.996aaad9c7-2build2 [310 kB] 422s Get:235 http://ftpmaster.internal/ubuntu noble-proposed/main armhf mtr-tiny armhf 0.95-1.1build1 [51.7 kB] 422s Get:236 http://ftpmaster.internal/ubuntu noble-proposed/main armhf plymouth-theme-ubuntu-text armhf 24.004.60-1ubuntu6 [9818 B] 422s Get:237 http://ftpmaster.internal/ubuntu noble-proposed/main armhf plymouth armhf 24.004.60-1ubuntu6 [142 kB] 422s Get:238 http://ftpmaster.internal/ubuntu noble-proposed/main armhf psmisc armhf 23.7-1 [176 kB] 422s Get:239 http://ftpmaster.internal/ubuntu noble-proposed/main armhf telnet all 0.17+2.5-3ubuntu3 [3682 B] 423s Get:240 http://ftpmaster.internal/ubuntu noble-proposed/main armhf usb.ids all 2024.03.18-1 [223 kB] 423s Get:241 http://ftpmaster.internal/ubuntu noble-proposed/main armhf xz-utils armhf 5.6.0-0.2 [271 kB] 423s Get:242 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libctf0 armhf 2.42-4ubuntu1 [87.7 kB] 423s Get:243 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libctf-nobfd0 armhf 2.42-4ubuntu1 [88.0 kB] 423s Get:244 http://ftpmaster.internal/ubuntu noble-proposed/main armhf binutils-arm-linux-gnueabihf armhf 2.42-4ubuntu1 [2925 kB] 423s Get:245 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libbinutils armhf 2.42-4ubuntu1 [464 kB] 423s Get:246 http://ftpmaster.internal/ubuntu noble-proposed/main armhf binutils armhf 2.42-4ubuntu1 [3078 B] 423s Get:247 http://ftpmaster.internal/ubuntu noble-proposed/main armhf binutils-common armhf 2.42-4ubuntu1 [217 kB] 423s Get:248 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsframe1 armhf 2.42-4ubuntu1 [13.1 kB] 423s Get:249 http://ftpmaster.internal/ubuntu noble-proposed/main armhf bolt armhf 0.9.6-2build1 [138 kB] 423s Get:250 http://ftpmaster.internal/ubuntu noble-proposed/main armhf cryptsetup-bin armhf 2:2.7.0-1ubuntu2 [214 kB] 423s Get:251 http://ftpmaster.internal/ubuntu noble-proposed/main armhf dpkg-dev all 1.22.6ubuntu4 [1074 kB] 423s Get:252 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libdpkg-perl all 1.22.6ubuntu4 [268 kB] 423s Get:253 http://ftpmaster.internal/ubuntu noble-proposed/main armhf gnupg-l10n all 2.4.4-2ubuntu15 [65.8 kB] 423s Get:254 http://ftpmaster.internal/ubuntu noble-proposed/main armhf ibverbs-providers armhf 50.0-2build1 [27.4 kB] 423s Get:255 http://ftpmaster.internal/ubuntu noble-proposed/main armhf jq armhf 1.7.1-3 [65.2 kB] 423s Get:256 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libjq1 armhf 1.7.1-3 [156 kB] 423s Get:257 http://ftpmaster.internal/ubuntu noble/main armhf libatm1t64 armhf 1:2.5.1-5.1 [20.0 kB] 423s Get:258 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libevent-core-2.1-7 armhf 2.1.12-stable-9build1 [82.3 kB] 423s Get:259 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libftdi1-2 armhf 1.5-6build4 [25.7 kB] 423s Get:260 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libldap-common all 2.6.7+dfsg-1~exp1ubuntu6 [31.3 kB] 423s Get:261 http://ftpmaster.internal/ubuntu noble-proposed/main armhf libsasl2-modules armhf 2.1.28+dfsg1-5ubuntu1 [61.3 kB] 423s Get:262 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-distutils all 3.12.2-3ubuntu1.1 [133 kB] 423s Get:263 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-lib2to3 all 3.12.2-3ubuntu1.1 [79.1 kB] 423s Get:264 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-pyrsistent armhf 0.20.0-1build1 [53.0 kB] 423s Get:265 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-typing-extensions all 4.10.0-1 [60.7 kB] 423s Get:266 http://ftpmaster.internal/ubuntu noble-proposed/main armhf kpartx armhf 0.9.4-5ubuntu6 [31.5 kB] 424s Preconfiguring packages ... 424s Fetched 100 MB in 6s (17.7 MB/s) 424s (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 ... 58619 files and directories currently installed.) 424s Preparing to unpack .../bsdutils_1%3a2.39.3-9ubuntu2_armhf.deb ... 424s Unpacking bsdutils (1:2.39.3-9ubuntu2) over (1:2.39.3-6ubuntu2) ... 424s Setting up bsdutils (1:2.39.3-9ubuntu2) ... 424s (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 ... 58619 files and directories currently installed.) 424s Preparing to unpack .../0-libbrotli1_1.1.0-2build1_armhf.deb ... 424s Unpacking libbrotli1:armhf (1.1.0-2build1) over (1.1.0-2) ... 424s Preparing to unpack .../1-libgssapi-krb5-2_1.20.1-6ubuntu1_armhf.deb ... 424s Unpacking libgssapi-krb5-2:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 424s Preparing to unpack .../2-libkrb5-3_1.20.1-6ubuntu1_armhf.deb ... 424s Unpacking libkrb5-3:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 424s Preparing to unpack .../3-libkrb5support0_1.20.1-6ubuntu1_armhf.deb ... 424s Unpacking libkrb5support0:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 424s Preparing to unpack .../4-libk5crypto3_1.20.1-6ubuntu1_armhf.deb ... 424s Unpacking libk5crypto3:armhf (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 424s Preparing to unpack .../5-libcom-err2_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 424s Unpacking libcom-err2:armhf (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 424s Preparing to unpack .../6-zlib1g_1%3a1.3.dfsg-3.1ubuntu1_armhf.deb ... 424s Unpacking zlib1g:armhf (1:1.3.dfsg-3.1ubuntu1) over (1:1.3.dfsg-3ubuntu1) ... 424s Setting up zlib1g:armhf (1:1.3.dfsg-3.1ubuntu1) ... 424s (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 ... 58619 files and directories currently installed.) 424s Preparing to unpack .../librtmp1_2.4+20151223.gitfa8646d.1-2build6_armhf.deb ... 424s Unpacking librtmp1:armhf (2.4+20151223.gitfa8646d.1-2build6) over (2.4+20151223.gitfa8646d.1-2build4) ... 424s Preparing to unpack .../udisks2_2.10.1-6_armhf.deb ... 424s Unpacking udisks2 (2.10.1-6) over (2.10.1-1ubuntu2) ... 424s Preparing to unpack .../libudisks2-0_2.10.1-6_armhf.deb ... 424s Unpacking libudisks2-0:armhf (2.10.1-6) over (2.10.1-1ubuntu2) ... 424s Preparing to unpack .../libblkid1_2.39.3-9ubuntu2_armhf.deb ... 424s Unpacking libblkid1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 424s Setting up libblkid1:armhf (2.39.3-9ubuntu2) ... 424s (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 ... 58619 files and directories currently installed.) 424s Preparing to unpack .../liblzma5_5.6.0-0.2_armhf.deb ... 424s Unpacking liblzma5:armhf (5.6.0-0.2) over (5.4.5-0.3) ... 424s Setting up liblzma5:armhf (5.6.0-0.2) ... 424s (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 ... 58619 files and directories currently installed.) 424s Preparing to unpack .../0-kmod_31+20240202-2ubuntu4_armhf.deb ... 424s Unpacking kmod (31+20240202-2ubuntu4) over (30+20230601-2ubuntu1) ... 424s dpkg: warning: unable to delete old directory '/lib/modprobe.d': Directory not empty 424s Preparing to unpack .../1-libkmod2_31+20240202-2ubuntu4_armhf.deb ... 424s Unpacking libkmod2:armhf (31+20240202-2ubuntu4) over (30+20230601-2ubuntu1) ... 425s Preparing to unpack .../2-systemd-dev_255.4-1ubuntu5_all.deb ... 425s Unpacking systemd-dev (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 425s Preparing to unpack .../3-systemd-timesyncd_255.4-1ubuntu5_armhf.deb ... 425s Unpacking systemd-timesyncd (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 425s Preparing to unpack .../4-dbus-session-bus-common_1.14.10-4ubuntu2_all.deb ... 425s Unpacking dbus-session-bus-common (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 425s Preparing to unpack .../5-libaudit-common_1%3a3.1.2-2.1_all.deb ... 425s Unpacking libaudit-common (1:3.1.2-2.1) over (1:3.1.2-2) ... 425s Setting up libaudit-common (1:3.1.2-2.1) ... 425s (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 ... 58618 files and directories currently installed.) 425s Preparing to unpack .../libcap-ng0_0.8.4-2build1_armhf.deb ... 425s Unpacking libcap-ng0:armhf (0.8.4-2build1) over (0.8.4-2) ... 425s Setting up libcap-ng0:armhf (0.8.4-2build1) ... 425s (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 ... 58618 files and directories currently installed.) 425s Preparing to unpack .../libaudit1_1%3a3.1.2-2.1_armhf.deb ... 425s Unpacking libaudit1:armhf (1:3.1.2-2.1) over (1:3.1.2-2) ... 425s Setting up libaudit1:armhf (1:3.1.2-2.1) ... 425s (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 ... 58618 files and directories currently installed.) 425s Preparing to unpack .../libpam0g_1.5.3-5ubuntu3_armhf.deb ... 425s Unpacking libpam0g:armhf (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 425s Setting up libpam0g:armhf (1.5.3-5ubuntu3) ... 425s (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 ... 58618 files and directories currently installed.) 425s Preparing to unpack .../libselinux1_3.5-2ubuntu1_armhf.deb ... 425s Unpacking libselinux1:armhf (3.5-2ubuntu1) over (3.5-2build1) ... 425s Setting up libselinux1:armhf (3.5-2ubuntu1) ... 425s dpkg: libcurl4:armhf: dependency problems, but removing anyway as you requested: 425s curl depends on libcurl4 (= 8.5.0-2ubuntu2). 425s 425s (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 ... 58618 files and directories currently installed.) 425s Removing libcurl4:armhf (8.5.0-2ubuntu2) ... 425s Selecting previously unselected package libcurl4t64:armhf. 425s (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 ... 58613 files and directories currently installed.) 425s Preparing to unpack .../libcurl4t64_8.5.0-2ubuntu8_armhf.deb ... 425s Unpacking libcurl4t64:armhf (8.5.0-2ubuntu8) ... 425s Preparing to unpack .../curl_8.5.0-2ubuntu8_armhf.deb ... 425s Unpacking curl (8.5.0-2ubuntu8) over (8.5.0-2ubuntu2) ... 425s dpkg: libpsl5:armhf: dependency problems, but removing anyway as you requested: 425s wget depends on libpsl5 (>= 0.16.0). 425s libcurl3-gnutls:armhf depends on libpsl5 (>= 0.16.0). 425s 425s (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 ... 58619 files and directories currently installed.) 425s Removing libpsl5:armhf (0.21.2-1build1) ... 425s Selecting previously unselected package libpsl5t64:armhf. 426s (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 ... 58614 files and directories currently installed.) 426s Preparing to unpack .../libpsl5t64_0.21.2-1.1_armhf.deb ... 426s Unpacking libpsl5t64:armhf (0.21.2-1.1) ... 426s Preparing to unpack .../wget_1.21.4-1ubuntu2_armhf.deb ... 426s Unpacking wget (1.21.4-1ubuntu2) over (1.21.4-1ubuntu1) ... 426s Preparing to unpack .../tnftp_20230507-2build1_armhf.deb ... 426s Unpacking tnftp (20230507-2build1) over (20230507-2) ... 426s dpkg: libpcap0.8:armhf: dependency problems, but removing anyway as you requested: 426s tcpdump depends on libpcap0.8 (>= 1.9.1). 426s 426s (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 ... 58620 files and directories currently installed.) 426s Removing libpcap0.8:armhf (1.10.4-4ubuntu3) ... 426s Selecting previously unselected package libpcap0.8t64:armhf. 426s (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 ... 58609 files and directories currently installed.) 426s Preparing to unpack .../00-libpcap0.8t64_1.10.4-4.1ubuntu2_armhf.deb ... 426s Unpacking libpcap0.8t64:armhf (1.10.4-4.1ubuntu2) ... 426s Preparing to unpack .../01-tcpdump_4.99.4-3ubuntu2_armhf.deb ... 426s Unpacking tcpdump (4.99.4-3ubuntu2) over (4.99.4-3ubuntu1) ... 426s Preparing to unpack .../02-libsystemd-shared_255.4-1ubuntu5_armhf.deb ... 426s Unpacking libsystemd-shared:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 426s Preparing to unpack .../03-systemd-resolved_255.4-1ubuntu5_armhf.deb ... 426s Unpacking systemd-resolved (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 426s Preparing to unpack .../04-sudo_1.9.15p5-3ubuntu3_armhf.deb ... 426s Unpacking sudo (1.9.15p5-3ubuntu3) over (1.9.15p5-3ubuntu1) ... 426s Preparing to unpack .../05-rsync_3.2.7-1build1_armhf.deb ... 426s Unpacking rsync (3.2.7-1build1) over (3.2.7-1) ... 426s Preparing to unpack .../06-python3-cryptography_41.0.7-4build2_armhf.deb ... 426s Unpacking python3-cryptography (41.0.7-4build2) over (41.0.7-3) ... 426s Preparing to unpack .../07-openssl_3.0.13-0ubuntu2_armhf.deb ... 426s Unpacking openssl (3.0.13-0ubuntu2) over (3.0.10-1ubuntu4) ... 427s Preparing to unpack .../08-openssh-sftp-server_1%3a9.6p1-3ubuntu11_armhf.deb ... 427s Unpacking openssh-sftp-server (1:9.6p1-3ubuntu11) over (1:9.6p1-3ubuntu2) ... 427s Preparing to unpack .../09-openssh-client_1%3a9.6p1-3ubuntu11_armhf.deb ... 427s Unpacking openssh-client (1:9.6p1-3ubuntu11) over (1:9.6p1-3ubuntu2) ... 427s Preparing to unpack .../10-openssh-server_1%3a9.6p1-3ubuntu11_armhf.deb ... 427s Unpacking openssh-server (1:9.6p1-3ubuntu11) over (1:9.6p1-3ubuntu2) ... 427s Selecting previously unselected package linux-headers-6.8.0-20. 427s Preparing to unpack .../11-linux-headers-6.8.0-20_6.8.0-20.20_all.deb ... 427s Unpacking linux-headers-6.8.0-20 (6.8.0-20.20) ... 430s Selecting previously unselected package linux-headers-6.8.0-20-generic. 430s Preparing to unpack .../12-linux-headers-6.8.0-20-generic_6.8.0-20.20_armhf.deb ... 430s Unpacking linux-headers-6.8.0-20-generic (6.8.0-20.20) ... 431s Preparing to unpack .../13-linux-headers-generic_6.8.0-20.20+1_armhf.deb ... 431s Unpacking linux-headers-generic (6.8.0-20.20+1) over (6.8.0-11.11+1) ... 431s (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 ... 89772 files and directories currently installed.) 431s Removing linux-headers-6.8.0-11-generic (6.8.0-11.11) ... 432s dpkg: libssl3:armhf: dependency problems, but removing anyway as you requested: 432s systemd depends on libssl3 (>= 3.0.0). 432s libssh-4:armhf depends on libssl3 (>= 3.0.0). 432s libsasl2-modules:armhf depends on libssl3 (>= 3.0.0). 432s libsasl2-2:armhf depends on libssl3 (>= 3.0.0). 432s libpython3.12-minimal:armhf depends on libssl3 (>= 3.0.0). 432s libpython3.11-minimal:armhf depends on libssl3 (>= 3.0.0). 432s libnvme1 depends on libssl3 (>= 3.0.0). 432s libfido2-1:armhf depends on libssl3 (>= 3.0.0). 432s libcryptsetup12:armhf depends on libssl3 (>= 3.0.0). 432s dhcpcd-base depends on libssl3 (>= 3.0.0). 432s bind9-libs:armhf depends on libssl3 (>= 3.0.0). 432s 432s Removing libssl3:armhf (3.0.10-1ubuntu4) ... 432s Selecting previously unselected package libssl3t64:armhf. 432s (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 ... 78622 files and directories currently installed.) 432s Preparing to unpack .../libssl3t64_3.0.13-0ubuntu2_armhf.deb ... 432s Unpacking libssl3t64:armhf (3.0.13-0ubuntu2) ... 432s Setting up libssl3t64:armhf (3.0.13-0ubuntu2) ... 432s (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 ... 78635 files and directories currently installed.) 432s Preparing to unpack .../libnss-systemd_255.4-1ubuntu5_armhf.deb ... 432s Unpacking libnss-systemd:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 432s Preparing to unpack .../libudev1_255.4-1ubuntu5_armhf.deb ... 432s Unpacking libudev1:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 432s Setting up libudev1:armhf (255.4-1ubuntu5) ... 432s (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 ... 78635 files and directories currently installed.) 432s Preparing to unpack .../systemd_255.4-1ubuntu5_armhf.deb ... 432s Unpacking systemd (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 433s Preparing to unpack .../udev_255.4-1ubuntu5_armhf.deb ... 433s Unpacking udev (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 433s Preparing to unpack .../libsystemd0_255.4-1ubuntu5_armhf.deb ... 433s Unpacking libsystemd0:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 433s Setting up libsystemd0:armhf (255.4-1ubuntu5) ... 433s Setting up libkmod2:armhf (31+20240202-2ubuntu4) ... 433s Setting up libsystemd-shared:armhf (255.4-1ubuntu5) ... 433s Setting up systemd-dev (255.4-1ubuntu5) ... 433s Setting up systemd (255.4-1ubuntu5) ... 434s (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 ... 78635 files and directories currently installed.) 434s Preparing to unpack .../systemd-sysv_255.4-1ubuntu5_armhf.deb ... 434s Unpacking systemd-sysv (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 434s Preparing to unpack .../libpam-systemd_255.4-1ubuntu5_armhf.deb ... 434s Unpacking libpam-systemd:armhf (255.4-1ubuntu5) over (255.2-3ubuntu2) ... 434s Preparing to unpack .../libpam-modules-bin_1.5.3-5ubuntu3_armhf.deb ... 434s Unpacking libpam-modules-bin (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 434s Setting up libpam-modules-bin (1.5.3-5ubuntu3) ... 435s pam_namespace.service is a disabled or a static unit not running, not starting it. 435s (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 ... 78635 files and directories currently installed.) 435s Preparing to unpack .../libpam-modules_1.5.3-5ubuntu3_armhf.deb ... 435s Unpacking libpam-modules:armhf (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 435s Setting up libpam-modules:armhf (1.5.3-5ubuntu3) ... 435s Installing new version of config file /etc/security/namespace.init ... 435s (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 ... 78633 files and directories currently installed.) 435s Preparing to unpack .../libpam-runtime_1.5.3-5ubuntu3_all.deb ... 435s Unpacking libpam-runtime (1.5.3-5ubuntu3) over (1.5.2-9.1ubuntu3) ... 435s Setting up libpam-runtime (1.5.3-5ubuntu3) ... 435s (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 ... 78633 files and directories currently installed.) 435s Preparing to unpack .../dbus-user-session_1.14.10-4ubuntu2_armhf.deb ... 435s Unpacking dbus-user-session (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 435s Preparing to unpack .../libapparmor1_4.0.0-beta3-0ubuntu2_armhf.deb ... 435s Unpacking libapparmor1:armhf (4.0.0-beta3-0ubuntu2) over (4.0.0~alpha4-0ubuntu1) ... 435s Preparing to unpack .../gcc-14-base_14-20240315-1ubuntu1_armhf.deb ... 435s Unpacking gcc-14-base:armhf (14-20240315-1ubuntu1) over (14-20240303-1ubuntu1) ... 435s Setting up gcc-14-base:armhf (14-20240315-1ubuntu1) ... 435s (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 ... 78633 files and directories currently installed.) 435s Preparing to unpack .../libgcc-s1_14-20240315-1ubuntu1_armhf.deb ... 435s Unpacking libgcc-s1:armhf (14-20240315-1ubuntu1) over (14-20240303-1ubuntu1) ... 435s Setting up libgcc-s1:armhf (14-20240315-1ubuntu1) ... 435s (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 ... 78633 files and directories currently installed.) 435s Preparing to unpack .../libstdc++6_14-20240315-1ubuntu1_armhf.deb ... 436s Unpacking libstdc++6:armhf (14-20240315-1ubuntu1) over (14-20240303-1ubuntu1) ... 436s Setting up libstdc++6:armhf (14-20240315-1ubuntu1) ... 436s (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 ... 78633 files and directories currently installed.) 436s Preparing to unpack .../0-libexpat1_2.6.1-2_armhf.deb ... 436s Unpacking libexpat1:armhf (2.6.1-2) over (2.6.0-1) ... 436s Preparing to unpack .../1-dbus-system-bus-common_1.14.10-4ubuntu2_all.deb ... 436s Unpacking dbus-system-bus-common (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 436s Preparing to unpack .../2-dbus-bin_1.14.10-4ubuntu2_armhf.deb ... 436s Unpacking dbus-bin (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 436s Preparing to unpack .../3-dbus_1.14.10-4ubuntu2_armhf.deb ... 436s Unpacking dbus (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 436s Preparing to unpack .../4-dbus-daemon_1.14.10-4ubuntu2_armhf.deb ... 436s Unpacking dbus-daemon (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 436s Preparing to unpack .../5-libdbus-1-3_1.14.10-4ubuntu2_armhf.deb ... 436s Unpacking libdbus-1-3:armhf (1.14.10-4ubuntu2) over (1.14.10-4ubuntu1) ... 436s Preparing to unpack .../6-libmount1_2.39.3-9ubuntu2_armhf.deb ... 436s Unpacking libmount1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 436s Setting up libmount1:armhf (2.39.3-9ubuntu2) ... 436s (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 ... 78633 files and directories currently installed.) 436s Preparing to unpack .../libseccomp2_2.5.5-1ubuntu2_armhf.deb ... 436s Unpacking libseccomp2:armhf (2.5.5-1ubuntu2) over (2.5.5-1ubuntu1) ... 436s Setting up libseccomp2:armhf (2.5.5-1ubuntu2) ... 436s (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 ... 78633 files and directories currently installed.) 436s Preparing to unpack .../libdevmapper1.02.1_2%3a1.02.185-3ubuntu2_armhf.deb ... 436s Unpacking libdevmapper1.02.1:armhf (2:1.02.185-3ubuntu2) over (2:1.02.185-3ubuntu1) ... 436s Preparing to unpack .../libuuid1_2.39.3-9ubuntu2_armhf.deb ... 436s Unpacking libuuid1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 436s Setting up libuuid1:armhf (2.39.3-9ubuntu2) ... 436s (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 ... 78633 files and directories currently installed.) 436s Preparing to unpack .../0-libcryptsetup12_2%3a2.7.0-1ubuntu2_armhf.deb ... 436s Unpacking libcryptsetup12:armhf (2:2.7.0-1ubuntu2) over (2:2.7.0-1ubuntu1) ... 436s Preparing to unpack .../1-libfdisk1_2.39.3-9ubuntu2_armhf.deb ... 436s Unpacking libfdisk1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 436s Preparing to unpack .../2-mount_2.39.3-9ubuntu2_armhf.deb ... 436s Unpacking mount (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 436s Preparing to unpack .../3-libblockdev-utils3_3.1.0-1build1_armhf.deb ... 436s Unpacking libblockdev-utils3:armhf (3.1.0-1build1) over (3.1.0-1) ... 436s Preparing to unpack .../4-libvolume-key1_0.3.12-7build1_armhf.deb ... 436s Unpacking libvolume-key1:armhf (0.3.12-7build1) over (0.3.12-5build2) ... 437s Preparing to unpack .../5-libjcat1_0.2.0-2build2_armhf.deb ... 437s Unpacking libjcat1:armhf (0.2.0-2build2) over (0.2.0-2) ... 437s (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 ... 78633 files and directories currently installed.) 437s Removing libgpgme11:armhf (1.18.0-4ubuntu1) ... 437s (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 ... 78627 files and directories currently installed.) 437s Preparing to unpack .../parted_3.6-3.1build2_armhf.deb ... 437s Unpacking parted (3.6-3.1build2) over (3.6-3) ... 437s (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 ... 78627 files and directories currently installed.) 437s Removing libparted2:armhf (3.6-3) ... 437s Selecting previously unselected package libparted2t64:armhf. 437s (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 ... 78621 files and directories currently installed.) 437s Preparing to unpack .../00-libparted2t64_3.6-3.1build2_armhf.deb ... 437s Unpacking libparted2t64:armhf (3.6-3.1build2) ... 437s Preparing to unpack .../01-python3.12_3.12.2-4build3_armhf.deb ... 437s Unpacking python3.12 (3.12.2-4build3) over (3.12.2-1) ... 437s Preparing to unpack .../02-python3.12-minimal_3.12.2-4build3_armhf.deb ... 437s Unpacking python3.12-minimal (3.12.2-4build3) over (3.12.2-1) ... 437s Preparing to unpack .../03-libpython3.12-stdlib_3.12.2-4build3_armhf.deb ... 437s Unpacking libpython3.12-stdlib:armhf (3.12.2-4build3) over (3.12.2-1) ... 437s Preparing to unpack .../04-libpython3.12-minimal_3.12.2-4build3_armhf.deb ... 437s Unpacking libpython3.12-minimal:armhf (3.12.2-4build3) over (3.12.2-1) ... 437s Preparing to unpack .../05-libsasl2-modules-db_2.1.28+dfsg1-5ubuntu1_armhf.deb ... 437s Unpacking libsasl2-modules-db:armhf (2.1.28+dfsg1-5ubuntu1) over (2.1.28+dfsg1-4) ... 437s Preparing to unpack .../06-python3.11_3.11.8-1build4_armhf.deb ... 437s Unpacking python3.11 (3.11.8-1build4) over (3.11.8-1) ... 437s Preparing to unpack .../07-python3.11-minimal_3.11.8-1build4_armhf.deb ... 437s Unpacking python3.11-minimal (3.11.8-1build4) over (3.11.8-1) ... 438s Preparing to unpack .../08-libpython3.11-stdlib_3.11.8-1build4_armhf.deb ... 438s Unpacking libpython3.11-stdlib:armhf (3.11.8-1build4) over (3.11.8-1) ... 438s Preparing to unpack .../09-libpython3.11-minimal_3.11.8-1build4_armhf.deb ... 438s Unpacking libpython3.11-minimal:armhf (3.11.8-1build4) over (3.11.8-1) ... 438s Preparing to unpack .../10-libsqlite3-0_3.45.1-1ubuntu1_armhf.deb ... 438s Unpacking libsqlite3-0:armhf (3.45.1-1ubuntu1) over (3.45.1-1) ... 438s Preparing to unpack .../11-libtext-iconv-perl_1.7-8build2_armhf.deb ... 438s Unpacking libtext-iconv-perl:armhf (1.7-8build2) over (1.7-8build1) ... 438s Preparing to unpack .../12-libtext-charwidth-perl_0.04-11build2_armhf.deb ... 438s Unpacking libtext-charwidth-perl:armhf (0.04-11build2) over (0.04-11build1) ... 438s Preparing to unpack .../13-perl-modules-5.38_5.38.2-3.2_all.deb ... 438s Unpacking perl-modules-5.38 (5.38.2-3.2) over (5.38.2-3) ... 438s dpkg: libperl5.38:armhf: dependency problems, but removing anyway as you requested: 438s perl depends on libperl5.38 (= 5.38.2-3). 438s 438s (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 ... 78624 files and directories currently installed.) 438s Removing libperl5.38:armhf (5.38.2-3) ... 438s dpkg: libdb5.3:armhf: dependency problems, but removing anyway as you requested: 438s iproute2 depends on libdb5.3. 438s apt-utils depends on libdb5.3. 438s 438s Removing libdb5.3:armhf (5.3.28+dfsg2-4) ... 438s Selecting previously unselected package libdb5.3t64:armhf. 438s (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 ... 78099 files and directories currently installed.) 438s Preparing to unpack .../libdb5.3t64_5.3.28+dfsg2-6_armhf.deb ... 438s Unpacking libdb5.3t64:armhf (5.3.28+dfsg2-6) ... 438s Preparing to unpack .../python3-gdbm_3.12.2-3ubuntu1.1_armhf.deb ... 438s Unpacking python3-gdbm:armhf (3.12.2-3ubuntu1.1) over (3.11.5-1) ... 439s Preparing to unpack .../man-db_2.12.0-3build4_armhf.deb ... 439s Unpacking man-db (2.12.0-3build4) over (2.12.0-3) ... 439s (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 ... 78105 files and directories currently installed.) 439s Removing libgdbm-compat4:armhf (1.23-5) ... 439s Removing libgdbm6:armhf (1.23-5) ... 439s Selecting previously unselected package libgdbm6t64:armhf. 439s (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 ... 78095 files and directories currently installed.) 439s Preparing to unpack .../libgdbm6t64_1.23-5.1_armhf.deb ... 439s Unpacking libgdbm6t64:armhf (1.23-5.1) ... 439s Selecting previously unselected package libgdbm-compat4t64:armhf. 439s Preparing to unpack .../libgdbm-compat4t64_1.23-5.1_armhf.deb ... 439s Unpacking libgdbm-compat4t64:armhf (1.23-5.1) ... 439s Selecting previously unselected package libperl5.38t64:armhf. 439s Preparing to unpack .../libperl5.38t64_5.38.2-3.2_armhf.deb ... 439s Unpacking libperl5.38t64:armhf (5.38.2-3.2) ... 439s Preparing to unpack .../perl_5.38.2-3.2_armhf.deb ... 439s Unpacking perl (5.38.2-3.2) over (5.38.2-3) ... 439s Preparing to unpack .../perl-base_5.38.2-3.2_armhf.deb ... 439s Unpacking perl-base (5.38.2-3.2) over (5.38.2-3) ... 439s Setting up perl-base (5.38.2-3.2) ... 439s (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 ... 78626 files and directories currently installed.) 439s Preparing to unpack .../liblocale-gettext-perl_1.07-6ubuntu4_armhf.deb ... 439s Unpacking liblocale-gettext-perl (1.07-6ubuntu4) over (1.07-6build1) ... 439s dpkg: libnettle8:armhf: dependency problems, but removing anyway as you requested: 439s libhogweed6:armhf depends on libnettle8. 439s libgnutls30:armhf depends on libnettle8 (>= 3.9~). 439s libcurl3-gnutls:armhf depends on libnettle8. 439s libarchive13:armhf depends on libnettle8. 439s 439s (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 ... 78626 files and directories currently installed.) 439s Removing libnettle8:armhf (3.9.1-2) ... 439s Selecting previously unselected package libnettle8t64:armhf. 439s (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 ... 78619 files and directories currently installed.) 439s Preparing to unpack .../libnettle8t64_3.9.1-2.2_armhf.deb ... 439s Unpacking libnettle8t64:armhf (3.9.1-2.2) ... 439s Setting up libnettle8t64:armhf (3.9.1-2.2) ... 440s dpkg: libhogweed6:armhf: dependency problems, but removing anyway as you requested: 440s libgnutls30:armhf depends on libhogweed6 (>= 3.6). 440s 440s (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 ... 78627 files and directories currently installed.) 440s Removing libhogweed6:armhf (3.9.1-2) ... 440s Selecting previously unselected package libhogweed6t64:armhf. 440s (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 ... 78622 files and directories currently installed.) 440s Preparing to unpack .../libhogweed6t64_3.9.1-2.2_armhf.deb ... 440s Unpacking libhogweed6t64:armhf (3.9.1-2.2) ... 440s Setting up libhogweed6t64:armhf (3.9.1-2.2) ... 440s dpkg: libgnutls30:armhf: dependency problems, but removing anyway as you requested: 440s libldap2:armhf depends on libgnutls30 (>= 3.8.2). 440s libcurl3-gnutls:armhf depends on libgnutls30 (>= 3.8.2). 440s fwupd depends on libgnutls30 (>= 3.7.3). 440s dirmngr depends on libgnutls30 (>= 3.8.1). 440s apt depends on libgnutls30 (>= 3.8.1). 440s 440s (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 ... 78628 files and directories currently installed.) 440s Removing libgnutls30:armhf (3.8.3-1ubuntu1) ... 440s Selecting previously unselected package libgnutls30t64:armhf. 440s (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 ... 78619 files and directories currently installed.) 440s Preparing to unpack .../libgnutls30t64_3.8.3-1.1ubuntu2_armhf.deb ... 440s Unpacking libgnutls30t64:armhf (3.8.3-1.1ubuntu2) ... 440s Setting up libgnutls30t64:armhf (3.8.3-1.1ubuntu2) ... 440s (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 ... 78647 files and directories currently installed.) 440s Preparing to unpack .../libldap2_2.6.7+dfsg-1~exp1ubuntu6_armhf.deb ... 440s Unpacking libldap2:armhf (2.6.7+dfsg-1~exp1ubuntu6) over (2.6.7+dfsg-1~exp1ubuntu1) ... 440s dpkg: libcurl3-gnutls:armhf: dependency problems, but removing anyway as you requested: 440s libfwupd2:armhf depends on libcurl3-gnutls (>= 7.63.0). 440s fwupd depends on libcurl3-gnutls (>= 7.63.0). 440s 440s (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 ... 78647 files and directories currently installed.) 440s Removing libcurl3-gnutls:armhf (8.5.0-2ubuntu2) ... 440s Selecting previously unselected package libcurl3t64-gnutls:armhf. 440s (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 ... 78640 files and directories currently installed.) 440s Preparing to unpack .../00-libcurl3t64-gnutls_8.5.0-2ubuntu8_armhf.deb ... 440s Unpacking libcurl3t64-gnutls:armhf (8.5.0-2ubuntu8) ... 440s Preparing to unpack .../01-shared-mime-info_2.4-1build1_armhf.deb ... 440s Unpacking shared-mime-info (2.4-1build1) over (2.4-1) ... 440s Preparing to unpack .../02-gir1.2-girepository-2.0_1.79.1-1ubuntu6_armhf.deb ... 440s Unpacking gir1.2-girepository-2.0:armhf (1.79.1-1ubuntu6) over (1.79.1-1) ... 440s Preparing to unpack .../03-gir1.2-glib-2.0_2.79.3-3ubuntu5_armhf.deb ... 440s Unpacking gir1.2-glib-2.0:armhf (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 440s Preparing to unpack .../04-libgirepository-1.0-1_1.79.1-1ubuntu6_armhf.deb ... 440s Unpacking libgirepository-1.0-1:armhf (1.79.1-1ubuntu6) over (1.79.1-1) ... 440s Preparing to unpack .../05-python3-gi_3.47.0-3build1_armhf.deb ... 441s Unpacking python3-gi (3.47.0-3build1) over (3.47.0-3) ... 441s Preparing to unpack .../06-python3-dbus_1.3.2-5build2_armhf.deb ... 441s Unpacking python3-dbus (1.3.2-5build2) over (1.3.2-5build1) ... 441s Selecting previously unselected package libnetplan1:armhf. 441s Preparing to unpack .../07-libnetplan1_1.0-1_armhf.deb ... 441s Unpacking libnetplan1:armhf (1.0-1) ... 441s Preparing to unpack .../08-python3-netplan_1.0-1_armhf.deb ... 441s Unpacking python3-netplan (1.0-1) over (0.107.1-3) ... 441s Preparing to unpack .../09-netplan-generator_1.0-1_armhf.deb ... 441s Adding 'diversion of /lib/systemd/system-generators/netplan to /lib/systemd/system-generators/netplan.usr-is-merged by netplan-generator' 441s Unpacking netplan-generator (1.0-1) over (0.107.1-3) ... 441s Preparing to unpack .../10-initramfs-tools-bin_0.142ubuntu23_armhf.deb ... 441s Unpacking initramfs-tools-bin (0.142ubuntu23) over (0.142ubuntu20) ... 441s Preparing to unpack .../11-initramfs-tools-core_0.142ubuntu23_all.deb ... 441s Unpacking initramfs-tools-core (0.142ubuntu23) over (0.142ubuntu20) ... 441s Preparing to unpack .../12-initramfs-tools_0.142ubuntu23_all.deb ... 441s Unpacking initramfs-tools (0.142ubuntu23) over (0.142ubuntu20) ... 441s Preparing to unpack .../13-netplan.io_1.0-1_armhf.deb ... 441s Unpacking netplan.io (1.0-1) over (0.107.1-3) ... 441s Preparing to unpack .../14-libxmlb2_0.3.15-1build1_armhf.deb ... 441s Unpacking libxmlb2:armhf (0.3.15-1build1) over (0.3.15-1) ... 441s Preparing to unpack .../15-libqrtr-glib0_1.2.2-1ubuntu3_armhf.deb ... 441s Unpacking libqrtr-glib0:armhf (1.2.2-1ubuntu3) over (1.2.2-1ubuntu2) ... 441s Preparing to unpack .../16-libqmi-glib5_1.35.2-0ubuntu1_armhf.deb ... 441s Unpacking libqmi-glib5:armhf (1.35.2-0ubuntu1) over (1.34.0-2) ... 441s Preparing to unpack .../17-libqmi-proxy_1.35.2-0ubuntu1_armhf.deb ... 441s Unpacking libqmi-proxy (1.35.2-0ubuntu1) over (1.34.0-2) ... 441s Preparing to unpack .../18-libpolkit-agent-1-0_124-1ubuntu1_armhf.deb ... 441s Unpacking libpolkit-agent-1-0:armhf (124-1ubuntu1) over (124-1) ... 441s Preparing to unpack .../19-libpolkit-gobject-1-0_124-1ubuntu1_armhf.deb ... 441s Unpacking libpolkit-gobject-1-0:armhf (124-1ubuntu1) over (124-1) ... 442s (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 ... 78651 files and directories currently installed.) 442s Removing libnetplan0:armhf (0.107.1-3) ... 442s dpkg: libglib2.0-0:armhf: dependency problems, but removing anyway as you requested: 442s libmm-glib0:armhf depends on libglib2.0-0 (>= 2.62.0). 442s libmbim-proxy depends on libglib2.0-0 (>= 2.56). 442s libmbim-glib4:armhf depends on libglib2.0-0 (>= 2.56). 442s libjson-glib-1.0-0:armhf depends on libglib2.0-0 (>= 2.75.3). 442s libgusb2:armhf depends on libglib2.0-0 (>= 2.75.3). 442s libgudev-1.0-0:armhf depends on libglib2.0-0 (>= 2.38.0). 442s libfwupd2:armhf depends on libglib2.0-0 (>= 2.79.0). 442s libblockdev3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s libblockdev-swap3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s libblockdev-part3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s libblockdev-nvme3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s libblockdev-mdraid3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s libblockdev-loop3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s libblockdev-fs3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s libblockdev-crypto3:armhf depends on libglib2.0-0 (>= 2.42.2). 442s fwupd depends on libglib2.0-0 (>= 2.79.0). 442s bolt depends on libglib2.0-0 (>= 2.56.0). 442s 442s Removing libglib2.0-0:armhf (2.79.2-1~ubuntu1) ... 442s Selecting previously unselected package libglib2.0-0t64:armhf. 442s (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 ... 78622 files and directories currently installed.) 442s Preparing to unpack .../libglib2.0-0t64_2.79.3-3ubuntu5_armhf.deb ... 442s libglib2.0-0t64.preinst: Removing /var/lib/dpkg/info/libglib2.0-0:armhf.postrm to avoid loss of /usr/share/glib-2.0/schemas/gschemas.compiled... 442s removed '/var/lib/dpkg/info/libglib2.0-0:armhf.postrm' 442s Unpacking libglib2.0-0t64:armhf (2.79.3-3ubuntu5) ... 442s Preparing to unpack .../libfwupd2_1.9.15-2_armhf.deb ... 442s Unpacking libfwupd2:armhf (1.9.15-2) over (1.9.14-1) ... 442s dpkg: libarchive13:armhf: dependency problems, but removing anyway as you requested: 442s fwupd depends on libarchive13 (>= 3.2.1). 442s 442s (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 ... 78647 files and directories currently installed.) 442s Removing libarchive13:armhf (3.7.2-1ubuntu2) ... 442s Selecting previously unselected package libarchive13t64:armhf. 442s (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 ... 78641 files and directories currently installed.) 442s Preparing to unpack .../libarchive13t64_3.7.2-1.1ubuntu2_armhf.deb ... 442s Unpacking libarchive13t64:armhf (3.7.2-1.1ubuntu2) ... 442s Preparing to unpack .../fwupd_1.9.15-2_armhf.deb ... 442s Unpacking fwupd (1.9.15-2) over (1.9.14-1) ... 442s Preparing to unpack .../apt-utils_2.7.14_armhf.deb ... 442s Unpacking apt-utils (2.7.14) over (2.7.12) ... 442s dpkg: libapt-pkg6.0:armhf: dependency problems, but removing anyway as you requested: 442s ubuntu-pro-client depends on libapt-pkg6.0 (>= 1.9~). 442s python3-apt depends on libapt-pkg6.0 (>= 2.7.11). 442s apt depends on libapt-pkg6.0 (>= 2.7.12). 442s 442s (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 ... 78648 files and directories currently installed.) 442s Removing libapt-pkg6.0:armhf (2.7.12) ... 442s Selecting previously unselected package libapt-pkg6.0t64:armhf. 442s (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 ... 78599 files and directories currently installed.) 442s Preparing to unpack .../libapt-pkg6.0t64_2.7.14_armhf.deb ... 442s Unpacking libapt-pkg6.0t64:armhf (2.7.14) ... 442s Setting up libapt-pkg6.0t64:armhf (2.7.14) ... 442s (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 ... 78649 files and directories currently installed.) 442s Preparing to unpack .../archives/apt_2.7.14_armhf.deb ... 442s Unpacking apt (2.7.14) over (2.7.12) ... 442s Setting up apt (2.7.14) ... 443s (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 ... 78649 files and directories currently installed.) 443s Preparing to unpack .../ubuntu-pro-client-l10n_31.2.2_armhf.deb ... 443s Unpacking ubuntu-pro-client-l10n (31.2.2) over (31.1) ... 443s Preparing to unpack .../ubuntu-pro-client_31.2.2_armhf.deb ... 443s Unpacking ubuntu-pro-client (31.2.2) over (31.1) ... 443s Preparing to unpack .../keyboxd_2.4.4-2ubuntu15_armhf.deb ... 443s Unpacking keyboxd (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 443s dpkg: libnpth0:armhf: dependency problems, but removing anyway as you requested: 443s gpgv depends on libnpth0 (>= 0.90). 443s gpgsm depends on libnpth0 (>= 0.90). 443s gpg-agent depends on libnpth0 (>= 0.90). 443s gpg depends on libnpth0 (>= 0.90). 443s dirmngr depends on libnpth0 (>= 0.90). 443s 444s (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 ... 78649 files and directories currently installed.) 444s Removing libnpth0:armhf (1.6-3build2) ... 444s Selecting previously unselected package libnpth0t64:armhf. 444s (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 ... 78644 files and directories currently installed.) 444s Preparing to unpack .../libnpth0t64_1.6-3.1_armhf.deb ... 444s Unpacking libnpth0t64:armhf (1.6-3.1) ... 444s Setting up libnpth0t64:armhf (1.6-3.1) ... 444s (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 ... 78650 files and directories currently installed.) 444s Preparing to unpack .../gpgv_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking gpgv (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Setting up gpgv (2.4.4-2ubuntu15) ... 444s (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 ... 78650 files and directories currently installed.) 444s Preparing to unpack .../gpg_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking gpg (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Preparing to unpack .../gpg-wks-client_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking gpg-wks-client (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Preparing to unpack .../gnupg-utils_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking gnupg-utils (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Preparing to unpack .../gpg-agent_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking gpg-agent (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Preparing to unpack .../gpgsm_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking gpgsm (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s dpkg: libreadline8:armhf: dependency problems, but removing anyway as you requested: 444s gpgconf depends on libreadline8 (>= 6.0). 444s gawk depends on libreadline8 (>= 6.0). 444s fdisk depends on libreadline8 (>= 6.0). 444s 444s (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 ... 78650 files and directories currently installed.) 444s Removing libreadline8:armhf (8.2-3) ... 444s Selecting previously unselected package libreadline8t64:armhf. 444s (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 ... 78638 files and directories currently installed.) 444s Preparing to unpack .../libreadline8t64_8.2-4_armhf.deb ... 444s Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8 to /lib/arm-linux-gnueabihf/libhistory.so.8.usr-is-merged by libreadline8t64' 444s Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8.2 to /lib/arm-linux-gnueabihf/libhistory.so.8.2.usr-is-merged by libreadline8t64' 444s Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8 to /lib/arm-linux-gnueabihf/libreadline.so.8.usr-is-merged by libreadline8t64' 444s Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8.2 to /lib/arm-linux-gnueabihf/libreadline.so.8.2.usr-is-merged by libreadline8t64' 444s Unpacking libreadline8t64:armhf (8.2-4) ... 444s Setting up libreadline8t64:armhf (8.2-4) ... 444s (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 ... 78658 files and directories currently installed.) 444s Preparing to unpack .../00-gawk_1%3a5.2.1-2build2_armhf.deb ... 444s Unpacking gawk (1:5.2.1-2build2) over (1:5.2.1-2) ... 444s Preparing to unpack .../01-fdisk_2.39.3-9ubuntu2_armhf.deb ... 444s Unpacking fdisk (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 444s Preparing to unpack .../02-gpgconf_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking gpgconf (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Preparing to unpack .../03-dirmngr_2.4.4-2ubuntu15_armhf.deb ... 444s Unpacking dirmngr (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Preparing to unpack .../04-gnupg_2.4.4-2ubuntu15_all.deb ... 444s Unpacking gnupg (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 444s Preparing to unpack .../05-python3-apt_2.7.7_armhf.deb ... 444s Unpacking python3-apt (2.7.7) over (2.7.6) ... 445s Preparing to unpack .../06-pinentry-curses_1.2.1-3ubuntu4_armhf.deb ... 445s Unpacking pinentry-curses (1.2.1-3ubuntu4) over (1.2.1-3ubuntu1) ... 445s Preparing to unpack .../07-python3-yaml_6.0.1-2build1_armhf.deb ... 445s Unpacking python3-yaml (6.0.1-2build1) over (6.0.1-2) ... 445s Preparing to unpack .../08-python-apt-common_2.7.7_all.deb ... 445s Unpacking python-apt-common (2.7.7) over (2.7.6) ... 445s Preparing to unpack .../09-python3-setuptools_68.1.2-2ubuntu1_all.deb ... 445s Unpacking python3-setuptools (68.1.2-2ubuntu1) over (68.1.2-2) ... 445s Preparing to unpack .../10-python3-pkg-resources_68.1.2-2ubuntu1_all.deb ... 445s Unpacking python3-pkg-resources (68.1.2-2ubuntu1) over (68.1.2-2) ... 445s Preparing to unpack .../11-dpkg_1.22.6ubuntu4_armhf.deb ... 445s Unpacking dpkg (1.22.6ubuntu4) over (1.22.4ubuntu5) ... 445s Setting up dpkg (1.22.6ubuntu4) ... 445s Setting up libpython3.12-minimal:armhf (3.12.2-4build3) ... 445s Setting up libexpat1:armhf (2.6.1-2) ... 445s Setting up python3.12-minimal (3.12.2-4build3) ... 447s (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 ... 78655 files and directories currently installed.) 447s Preparing to unpack .../python3-minimal_3.12.2-0ubuntu1_armhf.deb ... 447s Unpacking python3-minimal (3.12.2-0ubuntu1) over (3.12.1-0ubuntu2) ... 447s Setting up python3-minimal (3.12.2-0ubuntu1) ... 447s (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 ... 78655 files and directories currently installed.) 447s Preparing to unpack .../python3_3.12.2-0ubuntu1_armhf.deb ... 447s Unpacking python3 (3.12.2-0ubuntu1) over (3.12.1-0ubuntu2) ... 447s Preparing to unpack .../libpython3-stdlib_3.12.2-0ubuntu1_armhf.deb ... 447s Unpacking libpython3-stdlib:armhf (3.12.2-0ubuntu1) over (3.12.1-0ubuntu2) ... 447s Preparing to unpack .../libsmartcols1_2.39.3-9ubuntu2_armhf.deb ... 447s Unpacking libsmartcols1:armhf (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 447s Setting up libsmartcols1:armhf (2.39.3-9ubuntu2) ... 447s (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 ... 78655 files and directories currently installed.) 447s Preparing to unpack .../0-bsdextrautils_2.39.3-9ubuntu2_armhf.deb ... 447s Unpacking bsdextrautils (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 447s Preparing to unpack .../1-groff-base_1.23.0-3build1_armhf.deb ... 447s Unpacking groff-base (1.23.0-3build1) over (1.23.0-3) ... 447s Preparing to unpack .../2-readline-common_8.2-4_all.deb ... 447s Unpacking readline-common (8.2-4) over (8.2-3) ... 447s Selecting previously unselected package libgpgme11t64:armhf. 447s Preparing to unpack .../3-libgpgme11t64_1.18.0-4.1ubuntu3_armhf.deb ... 447s Unpacking libgpgme11t64:armhf (1.18.0-4.1ubuntu3) ... 447s Preparing to unpack .../4-libblockdev-crypto3_3.1.0-1build1_armhf.deb ... 447s Unpacking libblockdev-crypto3:armhf (3.1.0-1build1) over (3.1.0-1) ... 447s Preparing to unpack .../5-e2fsprogs-l10n_1.47.0-2.4~exp1ubuntu2_all.deb ... 447s Unpacking e2fsprogs-l10n (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 447s Preparing to unpack .../6-logsave_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 447s Unpacking logsave (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 447s Preparing to unpack .../7-dhcpcd-base_1%3a10.0.6-1ubuntu2_armhf.deb ... 447s Unpacking dhcpcd-base (1:10.0.6-1ubuntu2) over (1:10.0.6-1ubuntu1) ... 447s Preparing to unpack .../8-libblockdev-fs3_3.1.0-1build1_armhf.deb ... 447s Unpacking libblockdev-fs3:armhf (3.1.0-1build1) over (3.1.0-1) ... 447s dpkg: libreiserfscore0: dependency problems, but removing anyway as you requested: 447s btrfs-progs depends on libreiserfscore0 (>= 1:3.6.27). 447s 447s (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 ... 78662 files and directories currently installed.) 447s Removing libreiserfscore0 (1:3.6.27-7) ... 447s Selecting previously unselected package libreiserfscore0t64. 447s (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 ... 78657 files and directories currently installed.) 447s Preparing to unpack .../libreiserfscore0t64_1%3a3.6.27-7.1_armhf.deb ... 447s Unpacking libreiserfscore0t64 (1:3.6.27-7.1) ... 447s Preparing to unpack .../btrfs-progs_6.6.3-1.1build1_armhf.deb ... 447s Unpacking btrfs-progs (6.6.3-1.1build1) over (6.6.3-1.1) ... 448s dpkg: libext2fs2:armhf: dependency problems, but removing anyway as you requested: 448s e2fsprogs depends on libext2fs2 (= 1.47.0-2ubuntu1). 448s 448s (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 ... 78663 files and directories currently installed.) 448s Removing libext2fs2:armhf (1.47.0-2ubuntu1) ... 448s Selecting previously unselected package libext2fs2t64:armhf. 448s (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 ... 78656 files and directories currently installed.) 448s Preparing to unpack .../libext2fs2t64_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 448s Adding 'diversion of /lib/arm-linux-gnueabihf/libe2p.so.2 to /lib/arm-linux-gnueabihf/libe2p.so.2.usr-is-merged by libext2fs2t64' 448s Adding 'diversion of /lib/arm-linux-gnueabihf/libe2p.so.2.3 to /lib/arm-linux-gnueabihf/libe2p.so.2.3.usr-is-merged by libext2fs2t64' 448s Adding 'diversion of /lib/arm-linux-gnueabihf/libext2fs.so.2 to /lib/arm-linux-gnueabihf/libext2fs.so.2.usr-is-merged by libext2fs2t64' 448s Adding 'diversion of /lib/arm-linux-gnueabihf/libext2fs.so.2.4 to /lib/arm-linux-gnueabihf/libext2fs.so.2.4.usr-is-merged by libext2fs2t64' 448s Unpacking libext2fs2t64:armhf (1.47.0-2.4~exp1ubuntu2) ... 448s Setting up libcom-err2:armhf (1.47.0-2.4~exp1ubuntu2) ... 448s Setting up libext2fs2t64:armhf (1.47.0-2.4~exp1ubuntu2) ... 448s (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 ... 78672 files and directories currently installed.) 448s Preparing to unpack .../e2fsprogs_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 448s Unpacking e2fsprogs (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 448s Preparing to unpack .../libblockdev-loop3_3.1.0-1build1_armhf.deb ... 448s Unpacking libblockdev-loop3:armhf (3.1.0-1build1) over (3.1.0-1) ... 448s Preparing to unpack .../libblockdev-mdraid3_3.1.0-1build1_armhf.deb ... 448s Unpacking libblockdev-mdraid3:armhf (3.1.0-1build1) over (3.1.0-1) ... 448s Preparing to unpack .../libblockdev-nvme3_3.1.0-1build1_armhf.deb ... 448s Unpacking libblockdev-nvme3:armhf (3.1.0-1build1) over (3.1.0-1) ... 448s (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 ... 78672 files and directories currently installed.) 448s Removing libnvme1 (1.8-2) ... 448s Selecting previously unselected package libnvme1t64. 448s (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 ... 78665 files and directories currently installed.) 448s Preparing to unpack .../0-libnvme1t64_1.8-3_armhf.deb ... 448s Unpacking libnvme1t64 (1.8-3) ... 448s Preparing to unpack .../1-libblockdev-part3_3.1.0-1build1_armhf.deb ... 448s Unpacking libblockdev-part3:armhf (3.1.0-1build1) over (3.1.0-1) ... 448s Preparing to unpack .../2-libblockdev-swap3_3.1.0-1build1_armhf.deb ... 448s Unpacking libblockdev-swap3:armhf (3.1.0-1build1) over (3.1.0-1) ... 448s Preparing to unpack .../3-libblockdev3_3.1.0-1build1_armhf.deb ... 448s Unpacking libblockdev3:armhf (3.1.0-1build1) over (3.1.0-1) ... 449s Preparing to unpack .../4-libgudev-1.0-0_1%3a238-3ubuntu2_armhf.deb ... 449s Unpacking libgudev-1.0-0:armhf (1:238-3ubuntu2) over (1:238-3) ... 449s Preparing to unpack .../5-libxml2_2.9.14+dfsg-1.3ubuntu2_armhf.deb ... 449s Unpacking libxml2:armhf (2.9.14+dfsg-1.3ubuntu2) over (2.9.14+dfsg-1.3ubuntu1) ... 449s Preparing to unpack .../6-libbpf1_1%3a1.3.0-2build1_armhf.deb ... 449s Unpacking libbpf1:armhf (1:1.3.0-2build1) over (1:1.3.0-2) ... 449s Preparing to unpack .../7-iproute2_6.1.0-1ubuntu5_armhf.deb ... 449s Unpacking iproute2 (6.1.0-1ubuntu5) over (6.1.0-1ubuntu2) ... 449s (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 ... 78673 files and directories currently installed.) 449s Removing libelf1:armhf (0.190-1) ... 449s Selecting previously unselected package libelf1t64:armhf. 449s (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 ... 78668 files and directories currently installed.) 449s Preparing to unpack .../libelf1t64_0.190-1.1build2_armhf.deb ... 449s Unpacking libelf1t64:armhf (0.190-1.1build2) ... 449s Preparing to unpack .../libtirpc-common_1.3.4+ds-1.1_all.deb ... 449s Unpacking libtirpc-common (1.3.4+ds-1.1) over (1.3.4+ds-1build1) ... 449s Preparing to unpack .../lsof_4.95.0-1build2_armhf.deb ... 449s Unpacking lsof (4.95.0-1build2) over (4.95.0-1build1) ... 450s Preparing to unpack .../libnsl2_1.3.0-3build2_armhf.deb ... 450s Unpacking libnsl2:armhf (1.3.0-3build2) over (1.3.0-3) ... 450s (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 ... 78673 files and directories currently installed.) 450s Removing libtirpc3:armhf (1.3.4+ds-1build1) ... 450s Selecting previously unselected package libtirpc3t64:armhf. 450s (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 ... 78667 files and directories currently installed.) 450s Preparing to unpack .../00-libtirpc3t64_1.3.4+ds-1.1_armhf.deb ... 450s Adding 'diversion of /lib/arm-linux-gnueabihf/libtirpc.so.3 to /lib/arm-linux-gnueabihf/libtirpc.so.3.usr-is-merged by libtirpc3t64' 450s Adding 'diversion of /lib/arm-linux-gnueabihf/libtirpc.so.3.0.0 to /lib/arm-linux-gnueabihf/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' 450s Unpacking libtirpc3t64:armhf (1.3.4+ds-1.1) ... 450s Preparing to unpack .../01-libmbim-proxy_1.31.2-0ubuntu2_armhf.deb ... 450s Unpacking libmbim-proxy (1.31.2-0ubuntu2) over (1.30.0-1) ... 450s Preparing to unpack .../02-libmbim-glib4_1.31.2-0ubuntu2_armhf.deb ... 450s Unpacking libmbim-glib4:armhf (1.31.2-0ubuntu2) over (1.30.0-1) ... 450s Preparing to unpack .../03-libjson-glib-1.0-common_1.8.0-2build1_all.deb ... 450s Unpacking libjson-glib-1.0-common (1.8.0-2build1) over (1.8.0-2) ... 450s Preparing to unpack .../04-libjson-glib-1.0-0_1.8.0-2build1_armhf.deb ... 450s Unpacking libjson-glib-1.0-0:armhf (1.8.0-2build1) over (1.8.0-2) ... 450s Preparing to unpack .../05-libnghttp2-14_1.59.0-1build1_armhf.deb ... 450s Unpacking libnghttp2-14:armhf (1.59.0-1build1) over (1.59.0-1) ... 450s Preparing to unpack .../06-libssh-4_0.10.6-2build1_armhf.deb ... 450s Unpacking libssh-4:armhf (0.10.6-2build1) over (0.10.6-2) ... 450s Preparing to unpack .../07-libusb-1.0-0_2%3a1.0.27-1_armhf.deb ... 450s Unpacking libusb-1.0-0:armhf (2:1.0.27-1) over (2:1.0.26-1) ... 450s Preparing to unpack .../08-libgusb2_0.4.8-1build1_armhf.deb ... 450s Unpacking libgusb2:armhf (0.4.8-1build1) over (0.4.8-1) ... 450s Preparing to unpack .../09-libmm-glib0_1.23.4-0ubuntu1_armhf.deb ... 450s Unpacking libmm-glib0:armhf (1.23.4-0ubuntu1) over (1.22.0-3) ... 450s Preparing to unpack .../10-libprotobuf-c1_1.4.1-1ubuntu3_armhf.deb ... 450s Unpacking libprotobuf-c1:armhf (1.4.1-1ubuntu3) over (1.4.1-1ubuntu2) ... 450s Preparing to unpack .../11-libsasl2-2_2.1.28+dfsg1-5ubuntu1_armhf.deb ... 450s Unpacking libsasl2-2:armhf (2.1.28+dfsg1-5ubuntu1) over (2.1.28+dfsg1-4) ... 450s Preparing to unpack .../12-libibverbs1_50.0-2build1_armhf.deb ... 450s Unpacking libibverbs1:armhf (50.0-2build1) over (50.0-2) ... 450s Preparing to unpack .../13-libfido2-1_1.14.0-1build1_armhf.deb ... 450s Unpacking libfido2-1:armhf (1.14.0-1build1) over (1.14.0-1) ... 450s Preparing to unpack .../14-libproc2-0_2%3a4.0.4-4ubuntu2_armhf.deb ... 450s Unpacking libproc2-0:armhf (2:4.0.4-4ubuntu2) over (2:4.0.4-4ubuntu1) ... 450s Preparing to unpack .../15-procps_2%3a4.0.4-4ubuntu2_armhf.deb ... 450s Unpacking procps (2:4.0.4-4ubuntu2) over (2:4.0.4-4ubuntu1) ... 450s Preparing to unpack .../16-coreutils_9.4-3ubuntu3_armhf.deb ... 450s Unpacking coreutils (9.4-3ubuntu3) over (9.4-2ubuntu4) ... 450s Setting up coreutils (9.4-3ubuntu3) ... 451s (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 ... 78679 files and directories currently installed.) 451s Preparing to unpack .../util-linux_2.39.3-9ubuntu2_armhf.deb ... 451s Unpacking util-linux (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 451s Setting up util-linux (2.39.3-9ubuntu2) ... 452s fstrim.service is a disabled or a static unit not running, not starting it. 452s (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 ... 78679 files and directories currently installed.) 452s Removing libatm1:armhf (1:2.5.1-5) ... 452s (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 ... 78674 files and directories currently installed.) 452s Preparing to unpack .../file_1%3a5.45-3_armhf.deb ... 452s Unpacking file (1:5.45-3) over (1:5.45-2) ... 452s (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 ... 78674 files and directories currently installed.) 452s Removing libmagic1:armhf (1:5.45-2) ... 452s (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 ... 78664 files and directories currently installed.) 452s Preparing to unpack .../libmagic-mgc_1%3a5.45-3_armhf.deb ... 452s Unpacking libmagic-mgc (1:5.45-3) over (1:5.45-2) ... 452s Selecting previously unselected package libmagic1t64:armhf. 452s Preparing to unpack .../libmagic1t64_1%3a5.45-3_armhf.deb ... 452s Unpacking libmagic1t64:armhf (1:5.45-3) ... 452s Preparing to unpack .../libplymouth5_24.004.60-1ubuntu6_armhf.deb ... 452s Unpacking libplymouth5:armhf (24.004.60-1ubuntu6) over (24.004.60-1ubuntu3) ... 452s (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 ... 78675 files and directories currently installed.) 452s Removing libpng16-16:armhf (1.6.43-1) ... 452s Selecting previously unselected package libpng16-16t64:armhf. 452s (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 ... 78665 files and directories currently installed.) 452s Preparing to unpack .../libpng16-16t64_1.6.43-3_armhf.deb ... 452s Unpacking libpng16-16t64:armhf (1.6.43-3) ... 452s Preparing to unpack .../bind9-host_1%3a9.18.24-0ubuntu3_armhf.deb ... 452s Unpacking bind9-host (1:9.18.24-0ubuntu3) over (1:9.18.21-0ubuntu1) ... 452s Preparing to unpack .../bind9-dnsutils_1%3a9.18.24-0ubuntu3_armhf.deb ... 452s Unpacking bind9-dnsutils (1:9.18.24-0ubuntu3) over (1:9.18.21-0ubuntu1) ... 452s Preparing to unpack .../bind9-libs_1%3a9.18.24-0ubuntu3_armhf.deb ... 452s Unpacking bind9-libs:armhf (1:9.18.24-0ubuntu3) over (1:9.18.21-0ubuntu1) ... 452s (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 ... 78676 files and directories currently installed.) 452s Removing libuv1:armhf (1.48.0-1) ... 452s Selecting previously unselected package libuv1t64:armhf. 452s (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 ... 78671 files and directories currently installed.) 452s Preparing to unpack .../libuv1t64_1.48.0-1.1_armhf.deb ... 452s Unpacking libuv1t64:armhf (1.48.0-1.1) ... 452s Preparing to unpack .../uuid-runtime_2.39.3-9ubuntu2_armhf.deb ... 452s Unpacking uuid-runtime (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 452s Preparing to unpack .../libdebconfclient0_0.271ubuntu2_armhf.deb ... 452s Unpacking libdebconfclient0:armhf (0.271ubuntu2) over (0.271ubuntu1) ... 452s Setting up libdebconfclient0:armhf (0.271ubuntu2) ... 452s (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 ... 78677 files and directories currently installed.) 452s Preparing to unpack .../libsemanage-common_3.5-1build4_all.deb ... 452s Unpacking libsemanage-common (3.5-1build4) over (3.5-1build2) ... 453s Setting up libsemanage-common (3.5-1build4) ... 453s (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 ... 78677 files and directories currently installed.) 453s Preparing to unpack .../libsemanage2_3.5-1build4_armhf.deb ... 453s Unpacking libsemanage2:armhf (3.5-1build4) over (3.5-1build2) ... 453s Setting up libsemanage2:armhf (3.5-1build4) ... 453s (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 ... 78677 files and directories currently installed.) 453s Preparing to unpack .../install-info_7.1-3build1_armhf.deb ... 453s Unpacking install-info (7.1-3build1) over (7.1-3) ... 453s Setting up install-info (7.1-3build1) ... 453s (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 ... 78677 files and directories currently installed.) 453s Preparing to unpack .../00-gcc-13-base_13.2.0-21ubuntu1_armhf.deb ... 453s Unpacking gcc-13-base:armhf (13.2.0-21ubuntu1) over (13.2.0-17ubuntu2) ... 453s Preparing to unpack .../01-libss2_1.47.0-2.4~exp1ubuntu2_armhf.deb ... 453s Unpacking libss2:armhf (1.47.0-2.4~exp1ubuntu2) over (1.47.0-2ubuntu1) ... 453s Preparing to unpack .../02-dmsetup_2%3a1.02.185-3ubuntu2_armhf.deb ... 453s Unpacking dmsetup (2:1.02.185-3ubuntu2) over (2:1.02.185-3ubuntu1) ... 453s Preparing to unpack .../03-eject_2.39.3-9ubuntu2_armhf.deb ... 453s Unpacking eject (2.39.3-9ubuntu2) over (2.39.3-6ubuntu2) ... 453s Preparing to unpack .../04-krb5-locales_1.20.1-6ubuntu1_all.deb ... 453s Unpacking krb5-locales (1.20.1-6ubuntu1) over (1.20.1-5build1) ... 453s Preparing to unpack .../05-libglib2.0-data_2.79.3-3ubuntu5_all.deb ... 453s Unpacking libglib2.0-data (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 453s Preparing to unpack .../06-libslang2_2.3.3-3build1_armhf.deb ... 453s Unpacking libslang2:armhf (2.3.3-3build1) over (2.3.3-3) ... 453s Preparing to unpack .../07-rsyslog_8.2312.0-3ubuntu7_armhf.deb ... 453s Unpacking rsyslog (8.2312.0-3ubuntu7) over (8.2312.0-3ubuntu3) ... 453s Preparing to unpack .../08-vim-tiny_2%3a9.1.0016-1ubuntu6_armhf.deb ... 453s Unpacking vim-tiny (2:9.1.0016-1ubuntu6) over (2:9.1.0016-1ubuntu2) ... 453s Preparing to unpack .../09-vim-common_2%3a9.1.0016-1ubuntu6_all.deb ... 453s Unpacking vim-common (2:9.1.0016-1ubuntu6) over (2:9.1.0016-1ubuntu2) ... 453s Selecting previously unselected package xdg-user-dirs. 453s Preparing to unpack .../10-xdg-user-dirs_0.18-1_armhf.deb ... 453s Unpacking xdg-user-dirs (0.18-1) ... 453s Preparing to unpack .../11-xxd_2%3a9.1.0016-1ubuntu6_armhf.deb ... 454s Unpacking xxd (2:9.1.0016-1ubuntu6) over (2:9.1.0016-1ubuntu2) ... 454s Preparing to unpack .../12-apparmor_4.0.0-beta3-0ubuntu2_armhf.deb ... 454s Unpacking apparmor (4.0.0-beta3-0ubuntu2) over (4.0.0~alpha4-0ubuntu1) ... 455s Preparing to unpack .../13-ftp_20230507-2build1_all.deb ... 455s Unpacking ftp (20230507-2build1) over (20230507-2) ... 455s Preparing to unpack .../14-inetutils-telnet_2%3a2.5-3ubuntu3_armhf.deb ... 455s Unpacking inetutils-telnet (2:2.5-3ubuntu3) over (2:2.5-3ubuntu1) ... 455s Preparing to unpack .../15-info_7.1-3build1_armhf.deb ... 455s Unpacking info (7.1-3build1) over (7.1-3) ... 455s Preparing to unpack .../16-libxmuu1_2%3a1.1.3-3build1_armhf.deb ... 455s Unpacking libxmuu1:armhf (2:1.1.3-3build1) over (2:1.1.3-3) ... 455s Preparing to unpack .../17-lshw_02.19.git.2021.06.19.996aaad9c7-2build2_armhf.deb ... 455s Unpacking lshw (02.19.git.2021.06.19.996aaad9c7-2build2) over (02.19.git.2021.06.19.996aaad9c7-2build1) ... 455s Preparing to unpack .../18-mtr-tiny_0.95-1.1build1_armhf.deb ... 455s Unpacking mtr-tiny (0.95-1.1build1) over (0.95-1.1) ... 455s Preparing to unpack .../19-plymouth-theme-ubuntu-text_24.004.60-1ubuntu6_armhf.deb ... 455s Unpacking plymouth-theme-ubuntu-text (24.004.60-1ubuntu6) over (24.004.60-1ubuntu3) ... 455s Preparing to unpack .../20-plymouth_24.004.60-1ubuntu6_armhf.deb ... 455s Unpacking plymouth (24.004.60-1ubuntu6) over (24.004.60-1ubuntu3) ... 455s Preparing to unpack .../21-psmisc_23.7-1_armhf.deb ... 455s Unpacking psmisc (23.7-1) over (23.6-2) ... 455s Preparing to unpack .../22-telnet_0.17+2.5-3ubuntu3_all.deb ... 455s Unpacking telnet (0.17+2.5-3ubuntu3) over (0.17+2.5-3ubuntu1) ... 455s Preparing to unpack .../23-usb.ids_2024.03.18-1_all.deb ... 455s Unpacking usb.ids (2024.03.18-1) over (2024.01.30-1) ... 455s Preparing to unpack .../24-xz-utils_5.6.0-0.2_armhf.deb ... 455s Unpacking xz-utils (5.6.0-0.2) over (5.4.5-0.3) ... 455s Preparing to unpack .../25-libctf0_2.42-4ubuntu1_armhf.deb ... 455s Unpacking libctf0:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 455s Preparing to unpack .../26-libctf-nobfd0_2.42-4ubuntu1_armhf.deb ... 455s Unpacking libctf-nobfd0:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 455s Preparing to unpack .../27-binutils-arm-linux-gnueabihf_2.42-4ubuntu1_armhf.deb ... 455s Unpacking binutils-arm-linux-gnueabihf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 456s Preparing to unpack .../28-libbinutils_2.42-4ubuntu1_armhf.deb ... 456s Unpacking libbinutils:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 456s Preparing to unpack .../29-binutils_2.42-4ubuntu1_armhf.deb ... 456s Unpacking binutils (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 456s Preparing to unpack .../30-binutils-common_2.42-4ubuntu1_armhf.deb ... 456s Unpacking binutils-common:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 456s Preparing to unpack .../31-libsframe1_2.42-4ubuntu1_armhf.deb ... 456s Unpacking libsframe1:armhf (2.42-4ubuntu1) over (2.42-3ubuntu1) ... 456s Preparing to unpack .../32-bolt_0.9.6-2build1_armhf.deb ... 456s Unpacking bolt (0.9.6-2build1) over (0.9.6-2) ... 456s Preparing to unpack .../33-cryptsetup-bin_2%3a2.7.0-1ubuntu2_armhf.deb ... 456s Unpacking cryptsetup-bin (2:2.7.0-1ubuntu2) over (2:2.7.0-1ubuntu1) ... 456s Preparing to unpack .../34-dpkg-dev_1.22.6ubuntu4_all.deb ... 456s Unpacking dpkg-dev (1.22.6ubuntu4) over (1.22.4ubuntu5) ... 456s Preparing to unpack .../35-libdpkg-perl_1.22.6ubuntu4_all.deb ... 456s Unpacking libdpkg-perl (1.22.6ubuntu4) over (1.22.4ubuntu5) ... 456s Preparing to unpack .../36-gnupg-l10n_2.4.4-2ubuntu15_all.deb ... 456s Unpacking gnupg-l10n (2.4.4-2ubuntu15) over (2.4.4-2ubuntu7) ... 456s Preparing to unpack .../37-ibverbs-providers_50.0-2build1_armhf.deb ... 456s Unpacking ibverbs-providers:armhf (50.0-2build1) over (50.0-2) ... 456s Preparing to unpack .../38-jq_1.7.1-3_armhf.deb ... 456s Unpacking jq (1.7.1-3) over (1.7.1-2) ... 456s Preparing to unpack .../39-libjq1_1.7.1-3_armhf.deb ... 456s Unpacking libjq1:armhf (1.7.1-3) over (1.7.1-2) ... 456s Selecting previously unselected package libatm1t64:armhf. 456s Preparing to unpack .../40-libatm1t64_1%3a2.5.1-5.1_armhf.deb ... 456s Unpacking libatm1t64:armhf (1:2.5.1-5.1) ... 456s Preparing to unpack .../41-libevent-core-2.1-7_2.1.12-stable-9build1_armhf.deb ... 456s Unpacking libevent-core-2.1-7:armhf (2.1.12-stable-9build1) over (2.1.12-stable-9) ... 456s Preparing to unpack .../42-libftdi1-2_1.5-6build4_armhf.deb ... 456s Unpacking libftdi1-2:armhf (1.5-6build4) over (1.5-6build3) ... 456s Preparing to unpack .../43-libldap-common_2.6.7+dfsg-1~exp1ubuntu6_all.deb ... 456s Unpacking libldap-common (2.6.7+dfsg-1~exp1ubuntu6) over (2.6.7+dfsg-1~exp1ubuntu1) ... 456s Preparing to unpack .../44-libsasl2-modules_2.1.28+dfsg1-5ubuntu1_armhf.deb ... 457s Unpacking libsasl2-modules:armhf (2.1.28+dfsg1-5ubuntu1) over (2.1.28+dfsg1-4) ... 457s Preparing to unpack .../45-python3-distutils_3.12.2-3ubuntu1.1_all.deb ... 457s Unpacking python3-distutils (3.12.2-3ubuntu1.1) over (3.11.5-1) ... 457s Preparing to unpack .../46-python3-lib2to3_3.12.2-3ubuntu1.1_all.deb ... 457s Unpacking python3-lib2to3 (3.12.2-3ubuntu1.1) over (3.11.5-1) ... 457s Preparing to unpack .../47-python3-pyrsistent_0.20.0-1build1_armhf.deb ... 457s Unpacking python3-pyrsistent:armhf (0.20.0-1build1) over (0.20.0-1) ... 457s Preparing to unpack .../48-python3-typing-extensions_4.10.0-1_all.deb ... 457s Unpacking python3-typing-extensions (4.10.0-1) over (4.9.0-1) ... 457s Preparing to unpack .../49-kpartx_0.9.4-5ubuntu6_armhf.deb ... 457s Unpacking kpartx (0.9.4-5ubuntu6) over (0.9.4-5ubuntu3) ... 457s Setting up pinentry-curses (1.2.1-3ubuntu4) ... 457s Setting up libtext-iconv-perl:armhf (1.7-8build2) ... 457s Setting up libtext-charwidth-perl:armhf (0.04-11build2) ... 457s Setting up libibverbs1:armhf (50.0-2build1) ... 457s Setting up systemd-sysv (255.4-1ubuntu5) ... 457s Setting up libapparmor1:armhf (4.0.0-beta3-0ubuntu2) ... 457s Setting up libatm1t64:armhf (1:2.5.1-5.1) ... 457s Setting up libgdbm6t64:armhf (1.23-5.1) ... 457s Setting up bsdextrautils (2.39.3-9ubuntu2) ... 457s Setting up libgdbm-compat4t64:armhf (1.23-5.1) ... 457s Setting up xdg-user-dirs (0.18-1) ... 457s Setting up ibverbs-providers:armhf (50.0-2build1) ... 457s Setting up linux-headers-6.8.0-20 (6.8.0-20.20) ... 457s Setting up libmagic-mgc (1:5.45-3) ... 457s Setting up gawk (1:5.2.1-2build2) ... 457s Setting up psmisc (23.7-1) ... 457s Setting up libjq1:armhf (1.7.1-3) ... 457s Setting up libtirpc-common (1.3.4+ds-1.1) ... 457s Setting up libbrotli1:armhf (1.1.0-2build1) ... 457s Setting up libsqlite3-0:armhf (3.45.1-1ubuntu1) ... 457s Setting up libsasl2-modules:armhf (2.1.28+dfsg1-5ubuntu1) ... 457s Setting up libuv1t64:armhf (1.48.0-1.1) ... 457s Setting up libmagic1t64:armhf (1:5.45-3) ... 457s Setting up rsyslog (8.2312.0-3ubuntu7) ... 457s info: The user `syslog' is already a member of `adm'. 457s apparmor_parser: Unable to replace "rsyslogd". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 457s 458s Setting up binutils-common:armhf (2.42-4ubuntu1) ... 458s Setting up libpsl5t64:armhf (0.21.2-1.1) ... 458s Setting up libnghttp2-14:armhf (1.59.0-1build1) ... 458s Setting up libreiserfscore0t64 (1:3.6.27-7.1) ... 458s Setting up libctf-nobfd0:armhf (2.42-4ubuntu1) ... 458s Setting up libnss-systemd:armhf (255.4-1ubuntu5) ... 458s Setting up krb5-locales (1.20.1-6ubuntu1) ... 458s Setting up file (1:5.45-3) ... 458s Setting up kmod (31+20240202-2ubuntu4) ... 459s Setting up lshw (02.19.git.2021.06.19.996aaad9c7-2build2) ... 459s Setting up libldap-common (2.6.7+dfsg-1~exp1ubuntu6) ... 459s Setting up libprotobuf-c1:armhf (1.4.1-1ubuntu3) ... 459s Setting up xxd (2:9.1.0016-1ubuntu6) ... 459s Setting up libsframe1:armhf (2.42-4ubuntu1) ... 459s Setting up libelf1t64:armhf (0.190-1.1build2) ... 459s Setting up libkrb5support0:armhf (1.20.1-6ubuntu1) ... 459s Setting up linux-headers-6.8.0-20-generic (6.8.0-20.20) ... 459s Setting up eject (2.39.3-9ubuntu2) ... 459s Setting up apparmor (4.0.0-beta3-0ubuntu2) ... 459s Installing new version of config file /etc/apparmor.d/abstractions/authentication ... 459s Installing new version of config file /etc/apparmor.d/abstractions/crypto ... 459s Installing new version of config file /etc/apparmor.d/abstractions/kde-open5 ... 459s Installing new version of config file /etc/apparmor.d/abstractions/openssl ... 459s Installing new version of config file /etc/apparmor.d/code ... 459s Installing new version of config file /etc/apparmor.d/firefox ... 459s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 459s 459s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 459s 459s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 459s 460s sysctl: cannot stat /proc/sys/kernel/apparmor_restrict_unprivileged_userns: No such file or directory 460s Reloading AppArmor profiles 460s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "busybox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "nautilus". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "toybox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 460s 460s Error: At least one profile failed to load 460s Setting up libglib2.0-0t64:armhf (2.79.3-3ubuntu5) ... 460s No schema files found: doing nothing. 460s Setting up libglib2.0-data (2.79.3-3ubuntu5) ... 460s Setting up vim-common (2:9.1.0016-1ubuntu6) ... 460s Setting up gcc-13-base:armhf (13.2.0-21ubuntu1) ... 460s Setting up libqrtr-glib0:armhf (1.2.2-1ubuntu3) ... 460s Setting up libslang2:armhf (2.3.3-3build1) ... 460s Setting up libnvme1t64 (1.8-3) ... 460s Setting up mtr-tiny (0.95-1.1build1) ... 460s Setting up gnupg-l10n (2.4.4-2ubuntu15) ... 460s Setting up librtmp1:armhf (2.4+20151223.gitfa8646d.1-2build6) ... 460s Setting up libdbus-1-3:armhf (1.14.10-4ubuntu2) ... 460s Setting up xz-utils (5.6.0-0.2) ... 460s Setting up perl-modules-5.38 (5.38.2-3.2) ... 460s Setting up libproc2-0:armhf (2:4.0.4-4ubuntu2) ... 460s Setting up libblockdev-utils3:armhf (3.1.0-1build1) ... 460s Setting up libpng16-16t64:armhf (1.6.43-3) ... 460s Setting up systemd-timesyncd (255.4-1ubuntu5) ... 460s Setting up libevent-core-2.1-7:armhf (2.1.12-stable-9build1) ... 460s Setting up udev (255.4-1ubuntu5) ... 461s Setting up libss2:armhf (1.47.0-2.4~exp1ubuntu2) ... 461s Setting up usb.ids (2024.03.18-1) ... 461s Setting up sudo (1.9.15p5-3ubuntu3) ... 461s Setting up dhcpcd-base (1:10.0.6-1ubuntu2) ... 461s Setting up gir1.2-glib-2.0:armhf (2.79.3-3ubuntu5) ... 461s Setting up libk5crypto3:armhf (1.20.1-6ubuntu1) ... 461s Setting up logsave (1.47.0-2.4~exp1ubuntu2) ... 461s Setting up libfdisk1:armhf (2.39.3-9ubuntu2) ... 461s Setting up libdb5.3t64:armhf (5.3.28+dfsg2-6) ... 461s Setting up libblockdev-nvme3:armhf (3.1.0-1build1) ... 461s Setting up libdevmapper1.02.1:armhf (2:1.02.185-3ubuntu2) ... 461s Setting up libblockdev-fs3:armhf (3.1.0-1build1) ... 461s Setting up python-apt-common (2.7.7) ... 461s Setting up mount (2.39.3-9ubuntu2) ... 461s Setting up dmsetup (2:1.02.185-3ubuntu2) ... 461s Setting up uuid-runtime (2.39.3-9ubuntu2) ... 462s uuidd.service is a disabled or a static unit not running, not starting it. 462s Setting up libmm-glib0:armhf (1.23.4-0ubuntu1) ... 462s Setting up groff-base (1.23.0-3build1) ... 462s Setting up libplymouth5:armhf (24.004.60-1ubuntu6) ... 462s Setting up dbus-session-bus-common (1.14.10-4ubuntu2) ... 462s Setting up kpartx (0.9.4-5ubuntu6) ... 462s Setting up jq (1.7.1-3) ... 462s Setting up procps (2:4.0.4-4ubuntu2) ... 462s Setting up gpgconf (2.4.4-2ubuntu15) ... 462s Setting up libpcap0.8t64:armhf (1.10.4-4.1ubuntu2) ... 462s Setting up libcryptsetup12:armhf (2:2.7.0-1ubuntu2) ... 462s Setting up libgirepository-1.0-1:armhf (1.79.1-1ubuntu6) ... 462s Setting up libjson-glib-1.0-common (1.8.0-2build1) ... 462s Setting up libkrb5-3:armhf (1.20.1-6ubuntu1) ... 462s Setting up libpython3.11-minimal:armhf (3.11.8-1build4) ... 462s Setting up libusb-1.0-0:armhf (2:1.0.27-1) ... 462s Setting up libperl5.38t64:armhf (5.38.2-3.2) ... 462s Setting up tnftp (20230507-2build1) ... 462s Setting up libbinutils:armhf (2.42-4ubuntu1) ... 462s Setting up dbus-system-bus-common (1.14.10-4ubuntu2) ... 462s Setting up libfido2-1:armhf (1.14.0-1build1) ... 462s Setting up openssl (3.0.13-0ubuntu2) ... 462s Setting up readline-common (8.2-4) ... 462s Setting up libxml2:armhf (2.9.14+dfsg-1.3ubuntu2) ... 462s Setting up libxmuu1:armhf (2:1.1.3-3build1) ... 462s Setting up dbus-bin (1.14.10-4ubuntu2) ... 462s Setting up info (7.1-3build1) ... 462s Setting up liblocale-gettext-perl (1.07-6ubuntu4) ... 462s Setting up gpg (2.4.4-2ubuntu15) ... 462s Setting up libgudev-1.0-0:armhf (1:238-3ubuntu2) ... 462s Setting up libpolkit-gobject-1-0:armhf (124-1ubuntu1) ... 462s Setting up libbpf1:armhf (1:1.3.0-2build1) ... 462s Setting up libmbim-glib4:armhf (1.31.2-0ubuntu2) ... 462s Setting up rsync (3.2.7-1build1) ... 463s rsync.service is a disabled or a static unit not running, not starting it. 463s Setting up libudisks2-0:armhf (2.10.1-6) ... 463s Setting up bolt (0.9.6-2build1) ... 464s bolt.service is a disabled or a static unit not running, not starting it. 464s Setting up gnupg-utils (2.4.4-2ubuntu15) ... 464s Setting up initramfs-tools-bin (0.142ubuntu23) ... 464s Setting up libctf0:armhf (2.42-4ubuntu1) ... 464s Setting up cryptsetup-bin (2:2.7.0-1ubuntu2) ... 464s Setting up python3.11-minimal (3.11.8-1build4) ... 465s Setting up tcpdump (4.99.4-3ubuntu2) ... 465s apparmor_parser: Unable to replace "tcpdump". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 465s 465s Setting up apt-utils (2.7.14) ... 465s Setting up gpg-agent (2.4.4-2ubuntu15) ... 465s Setting up libpython3.12-stdlib:armhf (3.12.2-4build3) ... 465s Setting up libblockdev-mdraid3:armhf (3.1.0-1build1) ... 465s Setting up wget (1.21.4-1ubuntu2) ... 465s Setting up libblockdev-swap3:armhf (3.1.0-1build1) ... 465s Setting up plymouth (24.004.60-1ubuntu6) ... 465s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 466s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 466s Setting up libxmlb2:armhf (0.3.15-1build1) ... 466s Setting up btrfs-progs (6.6.3-1.1build1) ... 466s Setting up libpython3.11-stdlib:armhf (3.11.8-1build4) ... 466s Setting up python3.12 (3.12.2-4build3) ... 467s Setting up libblockdev-loop3:armhf (3.1.0-1build1) ... 467s Setting up gpgsm (2.4.4-2ubuntu15) ... 467s Setting up inetutils-telnet (2:2.5-3ubuntu3) ... 467s Setting up e2fsprogs (1.47.0-2.4~exp1ubuntu2) ... 467s update-initramfs: deferring update (trigger activated) 467s e2scrub_all.service is a disabled or a static unit not running, not starting it. 468s Setting up libparted2t64:armhf (3.6-3.1build2) ... 468s Setting up linux-headers-generic (6.8.0-20.20+1) ... 468s Setting up dbus-daemon (1.14.10-4ubuntu2) ... 468s Setting up libmbim-proxy (1.31.2-0ubuntu2) ... 468s Setting up vim-tiny (2:9.1.0016-1ubuntu6) ... 468s Setting up libnetplan1:armhf (1.0-1) ... 468s Setting up man-db (2.12.0-3build4) ... 468s Updating database of manual pages ... 469s apparmor_parser: Unable to replace "/usr/bin/man". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 469s 469s man-db.service is a disabled or a static unit not running, not starting it. 469s Setting up libblockdev3:armhf (3.1.0-1build1) ... 469s Setting up fdisk (2.39.3-9ubuntu2) ... 470s Setting up libjson-glib-1.0-0:armhf (1.8.0-2build1) ... 470s Setting up libblockdev-part3:armhf (3.1.0-1build1) ... 470s Setting up libsasl2-modules-db:armhf (2.1.28+dfsg1-5ubuntu1) ... 470s Setting up libftdi1-2:armhf (1.5-6build4) ... 470s Setting up perl (5.38.2-3.2) ... 470s Setting up plymouth-theme-ubuntu-text (24.004.60-1ubuntu6) ... 470s update-initramfs: deferring update (trigger activated) 470s Setting up gir1.2-girepository-2.0:armhf (1.79.1-1ubuntu6) ... 470s Setting up dbus (1.14.10-4ubuntu2) ... 470s A reboot is required to replace the running dbus-daemon. 470s Please reboot the system when convenient. 470s Setting up shared-mime-info (2.4-1build1) ... 470s Setting up libgssapi-krb5-2:armhf (1.20.1-6ubuntu1) ... 470s Setting up ftp (20230507-2build1) ... 470s Setting up keyboxd (2.4.4-2ubuntu15) ... 471s Setting up libdpkg-perl (1.22.6ubuntu4) ... 471s Setting up libsasl2-2:armhf (2.1.28+dfsg1-5ubuntu1) ... 471s Setting up libssh-4:armhf (0.10.6-2build1) ... 471s Setting up libpam-systemd:armhf (255.4-1ubuntu5) ... 471s Setting up libpolkit-agent-1-0:armhf (124-1ubuntu1) ... 471s Setting up libgpgme11t64:armhf (1.18.0-4.1ubuntu3) ... 471s Setting up netplan-generator (1.0-1) ... 471s Removing 'diversion of /lib/systemd/system-generators/netplan to /lib/systemd/system-generators/netplan.usr-is-merged by netplan-generator' 471s Setting up initramfs-tools-core (0.142ubuntu23) ... 471s Setting up binutils-arm-linux-gnueabihf (2.42-4ubuntu1) ... 471s Setting up libarchive13t64:armhf (3.7.2-1.1ubuntu2) ... 471s Setting up libldap2:armhf (2.6.7+dfsg-1~exp1ubuntu6) ... 471s Setting up libpython3-stdlib:armhf (3.12.2-0ubuntu1) ... 471s Setting up systemd-resolved (255.4-1ubuntu5) ... 471s Setting up python3.11 (3.11.8-1build4) ... 472s Setting up telnet (0.17+2.5-3ubuntu3) ... 472s Setting up initramfs-tools (0.142ubuntu23) ... 472s update-initramfs: deferring update (trigger activated) 472s Setting up libcurl4t64:armhf (8.5.0-2ubuntu8) ... 472s Setting up bind9-libs:armhf (1:9.18.24-0ubuntu3) ... 472s Setting up libtirpc3t64:armhf (1.3.4+ds-1.1) ... 472s Setting up e2fsprogs-l10n (1.47.0-2.4~exp1ubuntu2) ... 472s Setting up iproute2 (6.1.0-1ubuntu5) ... 472s Setting up openssh-client (1:9.6p1-3ubuntu11) ... 472s Setting up libgusb2:armhf (0.4.8-1build1) ... 472s Setting up libcurl3t64-gnutls:armhf (8.5.0-2ubuntu8) ... 472s Setting up parted (3.6-3.1build2) ... 472s Setting up libqmi-glib5:armhf (1.35.2-0ubuntu1) ... 472s Setting up python3 (3.12.2-0ubuntu1) ... 473s Setting up binutils (2.42-4ubuntu1) ... 473s Setting up libjcat1:armhf (0.2.0-2build2) ... 473s Setting up dpkg-dev (1.22.6ubuntu4) ... 473s Setting up dirmngr (2.4.4-2ubuntu15) ... 473s Setting up dbus-user-session (1.14.10-4ubuntu2) ... 473s Setting up python3-cryptography (41.0.7-4build2) ... 473s Setting up python3-gi (3.47.0-3build1) ... 473s Setting up python3-typing-extensions (4.10.0-1) ... 473s Setting up lsof (4.95.0-1build2) ... 473s Setting up python3-pyrsistent:armhf (0.20.0-1build1) ... 474s Setting up libnsl2:armhf (1.3.0-3build2) ... 474s Setting up gnupg (2.4.4-2ubuntu15) ... 474s Setting up python3-netplan (1.0-1) ... 474s Setting up curl (8.5.0-2ubuntu8) ... 474s Setting up libvolume-key1:armhf (0.3.12-7build1) ... 474s Setting up bind9-host (1:9.18.24-0ubuntu3) ... 474s Setting up python3-lib2to3 (3.12.2-3ubuntu1.1) ... 474s Setting up python3-pkg-resources (68.1.2-2ubuntu1) ... 474s Setting up python3-distutils (3.12.2-3ubuntu1.1) ... 474s python3.12: can't get files for byte-compilation 474s Setting up openssh-sftp-server (1:9.6p1-3ubuntu11) ... 474s Setting up python3-dbus (1.3.2-5build2) ... 474s Setting up python3-setuptools (68.1.2-2ubuntu1) ... 475s Setting up gpg-wks-client (2.4.4-2ubuntu15) ... 475s Setting up openssh-server (1:9.6p1-3ubuntu11) ... 475s Replacing config file /etc/ssh/sshd_config with new version 477s Created symlink /etc/systemd/system/ssh.service.requires/ssh.socket → /usr/lib/systemd/system/ssh.socket. 478s Setting up libblockdev-crypto3:armhf (3.1.0-1build1) ... 478s Setting up python3-gdbm:armhf (3.12.2-3ubuntu1.1) ... 478s Setting up python3-apt (2.7.7) ... 478s Setting up libfwupd2:armhf (1.9.15-2) ... 478s Setting up python3-yaml (6.0.1-2build1) ... 479s Setting up libqmi-proxy (1.35.2-0ubuntu1) ... 479s Setting up netplan.io (1.0-1) ... 479s Setting up bind9-dnsutils (1:9.18.24-0ubuntu3) ... 479s Setting up ubuntu-pro-client (31.2.2) ... 479s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 479s 480s Setting up fwupd (1.9.15-2) ... 480s fwupd-offline-update.service is a disabled or a static unit not running, not starting it. 480s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 480s fwupd.service is a disabled or a static unit not running, not starting it. 481s Setting up ubuntu-pro-client-l10n (31.2.2) ... 481s Setting up udisks2 (2.10.1-6) ... 481s vda: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/uevent': Permission denied 481s vda1: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/vda1/uevent': Permission denied 481s vda15: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/vda15/uevent': Permission denied 481s vda2: Failed to write 'change' to '/sys/devices/pci0000:00/0000:00:01.3/0000:04:00.0/virtio2/block/vda/vda2/uevent': Permission denied 481s loop0: Failed to write 'change' to '/sys/devices/virtual/block/loop0/uevent': Permission denied 481s loop1: Failed to write 'change' to '/sys/devices/virtual/block/loop1/uevent': Permission denied 481s loop2: Failed to write 'change' to '/sys/devices/virtual/block/loop2/uevent': Permission denied 481s loop3: Failed to write 'change' to '/sys/devices/virtual/block/loop3/uevent': Permission denied 481s loop4: Failed to write 'change' to '/sys/devices/virtual/block/loop4/uevent': Permission denied 481s loop5: Failed to write 'change' to '/sys/devices/virtual/block/loop5/uevent': Permission denied 481s loop6: Failed to write 'change' to '/sys/devices/virtual/block/loop6/uevent': Permission denied 481s loop7: Failed to write 'change' to '/sys/devices/virtual/block/loop7/uevent': Permission denied 481s Processing triggers for ufw (0.36.2-5) ... 481s Processing triggers for systemd (255.4-1ubuntu5) ... 481s Processing triggers for install-info (7.1-3build1) ... 481s Processing triggers for libc-bin (2.39-0ubuntu6) ... 482s Processing triggers for initramfs-tools (0.142ubuntu23) ... 483s Reading package lists... 483s Building dependency tree... 483s Reading state information... 484s The following packages will be REMOVED: 484s linux-headers-6.8.0-11* python3-distutils* python3-lib2to3* 484s 0 upgraded, 0 newly installed, 3 to remove and 1 not upgraded. 484s After this operation, 86.5 MB disk space will be freed. 484s (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 ... 78647 files and directories currently installed.) 484s Removing linux-headers-6.8.0-11 (6.8.0-11.11) ... 485s Removing python3-distutils (3.12.2-3ubuntu1.1) ... 485s Removing python3-lib2to3 (3.12.2-3ubuntu1.1) ... 487s autopkgtest [09:56:41]: rebooting testbed after setup commands that affected boot 557s Reading package lists... 557s Building dependency tree... 557s Reading state information... 558s Starting pkgProblemResolver with broken count: 0 558s Starting 2 pkgProblemResolver with broken count: 0 558s Done 558s The following additional packages will be installed: 558s python3-all python3-libtmux 558s The following NEW packages will be installed: 558s autopkgtest-satdep python3-all python3-libtmux 558s 0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded. 558s Need to get 40.1 kB/40.9 kB of archives. 558s After this operation, 224 kB of additional disk space will be used. 558s Get:1 /tmp/autopkgtest.m5Vctj/2-autopkgtest-satdep.deb autopkgtest-satdep armhf 0 [712 B] 559s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main armhf python3-all armhf 3.12.2-0ubuntu1 [886 B] 559s Get:3 http://ftpmaster.internal/ubuntu noble/universe armhf python3-libtmux all 0.30.2-1 [39.3 kB] 559s Fetched 40.1 kB in 0s (135 kB/s) 559s Selecting previously unselected package python3-all. 559s (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 ... 58436 files and directories currently installed.) 559s Preparing to unpack .../python3-all_3.12.2-0ubuntu1_armhf.deb ... 559s Unpacking python3-all (3.12.2-0ubuntu1) ... 559s Selecting previously unselected package python3-libtmux. 559s Preparing to unpack .../python3-libtmux_0.30.2-1_all.deb ... 559s Unpacking python3-libtmux (0.30.2-1) ... 559s Selecting previously unselected package autopkgtest-satdep. 559s Preparing to unpack .../2-autopkgtest-satdep.deb ... 559s Unpacking autopkgtest-satdep (0) ... 559s Setting up python3-libtmux (0.30.2-1) ... 559s Setting up python3-all (3.12.2-0ubuntu1) ... 559s Setting up autopkgtest-satdep (0) ... 570s (Reading database ... 58469 files and directories currently installed.) 570s Removing autopkgtest-satdep (0) ... 580s autopkgtest [09:58:14]: test autodep8-python3: set -e ; for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -c "import libtmux; print(libtmux)" ; done 580s autopkgtest [09:58:14]: test autodep8-python3: [----------------------- 582s Testing with python3.12: 582s 583s autopkgtest [09:58:17]: test autodep8-python3: -----------------------] 586s autopkgtest [09:58:20]: test autodep8-python3: - - - - - - - - - - results - - - - - - - - - - 586s autodep8-python3 PASS (superficial) 590s autopkgtest [09:58:24]: @@@@@@@@@@@@@@@@@@@@ summary 590s pytest FAIL non-zero exit status 1 590s autodep8-python3 PASS (superficial)