Warning: Permanently added '3.83.39.148' (ED25519) to the list of known hosts. You can reproduce this build on your computer by running: sudo dnf install copr-rpmbuild /usr/bin/copr-rpmbuild --verbose --drop-resultdir --task-url https://copr.fedorainfracloud.org/backend/get-build-task/9151209-fedora-rawhide-x86_64 --chroot fedora-rawhide-x86_64 Version: 1.3 PID: 11966 Logging PID: 11967 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'build_id': 9151209, 'buildroot_pkgs': [], 'chroot': 'fedora-rawhide-x86_64', 'enable_net': False, 'fedora_review': False, 'git_hash': 'b1cea0ed97a7f9b9b1cc737093b1047e3961fb63', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/cstratak/click-8.1.7/python-xbout', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'python-xbout', 'package_version': '0.3.6-5', 'project_dirname': 'click-8.1.7', 'project_name': 'click-8.1.7', 'project_owner': 'cstratak', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/cstratak/click-8.1.7/fedora-rawhide-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None}, {'baseurl': 'http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/', 'id': 'http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch', 'name': 'Additional repo http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch'}], 'sandbox': 'cstratak/click-8.1.7--cstratak', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'storage': 0, 'submitter': 'cstratak', 'tags': [], 'task_id': '9151209-fedora-rawhide-x86_64', 'timeout': 18000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/cstratak/click-8.1.7/python-xbout /var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/cstratak/click-8.1.7/python-xbout', '/var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout'... Running: git checkout b1cea0ed97a7f9b9b1cc737093b1047e3961fb63 -- cmd: ['git', 'checkout', 'b1cea0ed97a7f9b9b1cc737093b1047e3961fb63', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout rc: 0 stdout: stderr: Note: switching to 'b1cea0ed97a7f9b9b1cc737093b1047e3961fb63'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at b1cea0e automatic import of python-xbout Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout rc: 0 stdout: stderr: INFO: Reading stdout from command: git rev-parse --abbrev-ref HEAD INFO: Reading stdout from command: git rev-parse HEAD INFO: Reading sources specification file: sources INFO: Downloading xbout-0.3.6.tar.gz INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -o xbout-0.3.6.tar.gz --location --connect-timeout 60 --retry 3 --retry-delay 10 --remote-time --show-error --fail --retry-all-errors https://copr-dist-git.fedorainfracloud.org/repo/pkgs/cstratak/click-8.1.7/python-xbout/xbout-0.3.6.tar.gz/md5/f4970400bb7c6d2380b222c0bb98302a/xbout-0.3.6.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4692k 100 4692k 0 0 208M 0 --:--:-- --:--:-- --:--:-- 208M INFO: Reading stdout from command: md5sum xbout-0.3.6.tar.gz tail: /var/lib/copr-rpmbuild/main.log: file truncated Running (timeout=18000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout/python-xbout.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1749601066.731059 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 6.2 starting (python version = 3.13.3, NVR = mock-6.2-1.fc42), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout/python-xbout.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1749601066.731059 -r /var/lib/copr-rpmbuild/results/configs/child.cfg Start(bootstrap): init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish(bootstrap): init plugins Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout/python-xbout.spec) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 6.2 INFO: Mock Version: 6.2 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1749601066.731059/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata INFO: Guessed host environment type: unknown INFO: Using container image: registry.fedoraproject.org/fedora:rawhide INFO: Pulling image: registry.fedoraproject.org/fedora:rawhide INFO: Tagging container image as mock-bootstrap-5fe027fb-c113-4062-bf27-28dd5ac0173e INFO: Checking that 53f9000a2cf9b72e27839917d398f471bcc70c782642453ae656e9b7915e9861 image matches host's architecture INFO: Copy content of container 53f9000a2cf9b72e27839917d398f471bcc70c782642453ae656e9b7915e9861 to /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1749601066.731059/root INFO: mounting 53f9000a2cf9b72e27839917d398f471bcc70c782642453ae656e9b7915e9861 with podman image mount INFO: image 53f9000a2cf9b72e27839917d398f471bcc70c782642453ae656e9b7915e9861 as /var/lib/containers/storage/overlay/7786b659e3577dfe1794e11837b282e5deb73a038c95a40f70a5dd951c64830c/merged INFO: umounting image 53f9000a2cf9b72e27839917d398f471bcc70c782642453ae656e9b7915e9861 (/var/lib/containers/storage/overlay/7786b659e3577dfe1794e11837b282e5deb73a038c95a40f70a5dd951c64830c/merged) with podman image umount INFO: Removing image mock-bootstrap-5fe027fb-c113-4062-bf27-28dd5ac0173e INFO: Package manager dnf5 detected and used (fallback) INFO: Not updating bootstrap chroot, bootstrap_image_ready=True Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1749601066.731059/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf5 detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-5.99.90-5.fc43.x86_64 rpm-sequoia-1.8.0-1.fc43.x86_64 dnf5-5.2.13.1-2.fc43.x86_64 dnf5-plugins-5.2.13.1-2.fc43.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: fedora 100% | 26.8 KiB/s | 9.1 KiB | 00m00s Copr repository 100% | 95.0 KiB/s | 1.5 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 159.5 KiB/s | 3.8 KiB | 00m00s Copr repository 100% | 349.9 KiB/s | 9.8 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 5.2.37-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.2 MiB bzip2 x86_64 1.0.8-20.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 99.3 KiB coreutils x86_64 9.7-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.4 MiB cpio x86_64 2.15-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 MiB diffutils x86_64 3.12-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB fedora-release-common noarch 43-0.16 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 20.4 KiB findutils x86_64 1:4.10.0-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 MiB gawk x86_64 5.3.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB glibc-minimal-langpack x86_64 2.41.9000-15.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B grep x86_64 3.12-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB gzip x86_64 1.13-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 392.9 KiB info x86_64 7.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 357.9 KiB patch x86_64 2.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 226.8 KiB redhat-rpm-config noarch 343-6.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 181.4 KiB rpm-build x86_64 5.99.90-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 281.7 KiB sed x86_64 4.9-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 857.3 KiB shadow-utils x86_64 2:4.17.4-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.0 MiB tar x86_64 2:1.35-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.0 MiB unzip x86_64 6.0-66.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 390.3 KiB util-linux x86_64 2.40.4-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.4 MiB which x86_64 2.23-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83.4 KiB xz x86_64 1:5.8.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.3 MiB Installing dependencies: add-determinism x86_64 0.6.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.5 MiB alternatives x86_64 1.33-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 62.2 KiB ansible-srpm-macros noarch 1-17.1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 35.7 KiB audit-libs x86_64 4.0.4-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 351.2 KiB binutils x86_64 2.44-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25.9 MiB build-reproducibility-srpm-macros noarch 0.6.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 735.0 B bzip2-libs x86_64 1.0.8-20.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 84.6 KiB ca-certificates noarch 2024.2.69_v8.0.401-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.6 MiB coreutils-common x86_64 9.7-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.3 MiB crypto-policies noarch 20250603-1.git3a584b3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 142.2 KiB curl x86_64 8.14.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 474.1 KiB cyrus-sasl-lib x86_64 2.1.28-30.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB debugedit x86_64 5.1-6.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 192.7 KiB dwz x86_64 0.16-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 287.1 KiB ed x86_64 1.21-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 146.5 KiB efi-srpm-macros noarch 6-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40.1 KiB elfutils x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.9 MiB elfutils-debuginfod-client x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83.9 KiB elfutils-default-yama-scope noarch 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 KiB elfutils-libelf x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 MiB elfutils-libs x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 683.4 KiB fedora-gpg-keys noarch 43-0.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 129.0 KiB fedora-release noarch 43-0.16 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B fedora-release-identity-basic noarch 43-0.16 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 664.0 B fedora-repos noarch 43-0.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.9 KiB fedora-repos-rawhide noarch 43-0.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 KiB file x86_64 5.46-4.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 100.2 KiB file-libs x86_64 5.46-4.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.9 MiB filesystem x86_64 3.18-44.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 112.0 B filesystem-srpm-macros noarch 3.18-44.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.2 KiB fonts-srpm-macros noarch 1:2.0.5-22.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 55.8 KiB forge-srpm-macros noarch 0.4.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.9 KiB fpc-srpm-macros noarch 1.3-14.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 144.0 B gdb-minimal x86_64 16.3-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 13.2 MiB gdbm-libs x86_64 1:1.23-9.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 129.9 KiB ghc-srpm-macros noarch 1.9.2-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 779.0 B glibc x86_64 2.41.9000-15.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.7 MiB glibc-common x86_64 2.41.9000-15.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB glibc-gconv-extra x86_64 2.41.9000-15.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.2 MiB gmp x86_64 1:6.3.0-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 819.2 KiB gnat-srpm-macros noarch 6-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 KiB gnupg2 x86_64 2.4.8-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.5 MiB gnupg2-dirmngr x86_64 2.4.8-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 618.4 KiB gnupg2-gpg-agent x86_64 2.4.8-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 671.4 KiB gnupg2-gpgconf x86_64 2.4.8-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 250.0 KiB gnupg2-keyboxd x86_64 2.4.8-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 201.4 KiB gnupg2-verify x86_64 2.4.8-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 348.5 KiB gnutls x86_64 3.8.9-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.6 MiB go-srpm-macros noarch 3.6.0-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60.8 KiB gpgverify noarch 2.1-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.7 KiB ima-evm-utils-libs x86_64 1.6.2-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60.7 KiB jansson x86_64 2.14-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 93.1 KiB java-srpm-macros noarch 1-4.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 894.0 B json-c x86_64 0.18-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 86.7 KiB kernel-srpm-macros noarch 1.0-25.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB keyutils-libs x86_64 1.6.3-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 58.3 KiB krb5-libs x86_64 1.21.3-6.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB libacl x86_64 2.3.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.3 KiB libarchive x86_64 3.8.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 951.1 KiB libassuan x86_64 2.5.7-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 167.8 KiB libattr x86_64 2.5.2-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 27.1 KiB libblkid x86_64 2.40.4-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 262.4 KiB libbrotli x86_64 1.1.0-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 841.3 KiB libcap x86_64 2.76-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 209.2 KiB libcap-ng x86_64 0.8.5-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 72.9 KiB libcom_err x86_64 1.47.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 67.1 KiB libcurl x86_64 8.14.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 895.2 KiB libeconf x86_64 0.7.9-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 64.9 KiB libevent x86_64 2.1.12-15.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 903.1 KiB libfdisk x86_64 2.40.4-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 372.3 KiB libffi x86_64 3.4.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83.0 KiB libfsverity x86_64 1.6-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 32.5 KiB libgcc x86_64 15.1.1-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 266.6 KiB libgcrypt x86_64 1.11.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB libgomp x86_64 15.1.1-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 539.1 KiB libgpg-error x86_64 1.55-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 915.3 KiB libidn2 x86_64 2.3.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 552.5 KiB libksba x86_64 1.6.7-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 402.5 KiB libmount x86_64 2.40.4-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 356.2 KiB libnghttp2 x86_64 1.65.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 162.2 KiB libpkgconf x86_64 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 78.1 KiB libpsl x86_64 0.21.5-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 76.4 KiB libselinux x86_64 3.8-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 193.1 KiB libsemanage x86_64 3.8.1-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 304.4 KiB libsepol x86_64 3.8-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 826.0 KiB libsmartcols x86_64 2.40.4-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 180.4 KiB libssh x86_64 0.11.1-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 565.5 KiB libssh-config noarch 0.11.1-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 277.0 B libstdc++ x86_64 15.1.1-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.8 MiB libtasn1 x86_64 4.20.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 176.3 KiB libtool-ltdl x86_64 2.5.4-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 70.1 KiB libunistring x86_64 1.1-9.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB libusb1 x86_64 1.0.28-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 171.0 KiB libuuid x86_64 2.40.4-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 37.3 KiB libverto x86_64 0.3.2-10.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25.4 KiB libxcrypt x86_64 4.4.38-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 284.5 KiB libxml2 x86_64 2.12.10-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB libzstd x86_64 1.5.7-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 807.8 KiB lua-libs x86_64 5.4.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 280.8 KiB lua-srpm-macros noarch 1-15.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.3 KiB lz4-libs x86_64 1.10.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 157.4 KiB mpfr x86_64 4.2.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 828.8 KiB ncurses-base noarch 6.5-5.20250125.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 326.8 KiB ncurses-libs x86_64 6.5-5.20250125.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 946.3 KiB nettle x86_64 3.10.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 790.5 KiB npth x86_64 1.8-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 49.6 KiB ocaml-srpm-macros noarch 10-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB openblas-srpm-macros noarch 2-19.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 112.0 B openldap x86_64 2.6.9-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 655.1 KiB openssl-libs x86_64 1:3.5.0-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.9 MiB p11-kit x86_64 0.25.5-8.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 MiB p11-kit-trust x86_64 0.25.5-8.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 395.5 KiB package-notes-srpm-macros noarch 0.5-13.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 KiB pam-libs x86_64 1.7.0-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 126.7 KiB pcre2 x86_64 10.45-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 697.7 KiB pcre2-syntax noarch 10.45-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 273.9 KiB perl-srpm-macros noarch 1-57.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 861.0 B pkgconf x86_64 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 88.5 KiB pkgconf-m4 noarch 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 14.4 KiB pkgconf-pkg-config x86_64 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 989.0 B popt x86_64 1.19-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 132.8 KiB publicsuffix-list-dafsa noarch 20250116-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 68.5 KiB pyproject-srpm-macros noarch 1.18.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB python-srpm-macros noarch 3.13-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 51.7 KiB qt5-srpm-macros noarch 5.15.17-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 500.0 B qt6-srpm-macros noarch 6.9.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 464.0 B readline x86_64 8.2-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 485.0 KiB rpm x86_64 5.99.90-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.1 MiB rpm-build-libs x86_64 5.99.90-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 264.4 KiB rpm-libs x86_64 5.99.90-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 929.8 KiB rpm-sequoia x86_64 1.8.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.5 MiB rpm-sign-libs x86_64 5.99.90-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 39.7 KiB rust-srpm-macros noarch 26.3-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.8 KiB setup noarch 2.15.0-25.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 725.0 KiB sqlite-libs x86_64 3.50.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.5 MiB systemd-libs x86_64 257.6-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 MiB systemd-standalone-sysusers x86_64 257.6-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 277.3 KiB tpm2-tss x86_64 4.1.3-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB tree-sitter-srpm-macros noarch 0.3.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.8 KiB util-linux-core x86_64 2.40.4-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.4 MiB xxhash-libs x86_64 0.8.3-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 90.2 KiB xz-libs x86_64 1:5.8.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 217.8 KiB zig-srpm-macros noarch 1-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 KiB zip x86_64 3.0-43.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 698.5 KiB zlib-ng-compat x86_64 2.2.4-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 137.6 KiB zstd x86_64 1.5.7-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB Installing groups: Buildsystem building group Transaction Summary: Installing: 168 packages Total size of inbound packages is 58 MiB. Need to download 0 B. After this operation, 197 MiB extra will be used (install 197 MiB, remove 0 B). [ 1/168] tar-2:1.35-5.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/168] bzip2-0:1.0.8-20.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/168] redhat-rpm-config-0:343-6.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/168] rpm-build-0:5.99.90-5.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/168] unzip-0:6.0-66.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/168] cpio-0:2.15-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/168] which-0:2.23-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/168] bash-0:5.2.37-3.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/168] coreutils-0:9.7-3.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 10/168] grep-0:3.12-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 11/168] patch-0:2.8-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 12/168] sed-0:4.9-4.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 13/168] shadow-utils-2:4.17.4-1.fc43. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 14/168] util-linux-0:2.40.4-7.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 15/168] diffutils-0:3.12-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 16/168] fedora-release-common-0:43-0. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 17/168] findutils-1:4.10.0-5.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 18/168] gawk-0:5.3.2-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 19/168] glibc-minimal-langpack-0:2.41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 20/168] gzip-0:1.13-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 21/168] info-0:7.2-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 22/168] xz-1:5.8.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 23/168] glibc-0:2.41.9000-15.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 24/168] xz-libs-1:5.8.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 25/168] audit-libs-0:4.0.4-2.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 26/168] filesystem-0:3.18-44.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 27/168] libblkid-0:2.40.4-7.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 28/168] libcap-ng-0:0.8.5-4.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 29/168] libfdisk-0:2.40.4-7.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 30/168] libmount-0:2.40.4-7.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 31/168] libselinux-0:3.8-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 32/168] libsmartcols-0:2.40.4-7.fc43. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 33/168] libuuid-0:2.40.4-7.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 34/168] ncurses-libs-0:6.5-5.20250125 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 35/168] pam-libs-0:1.7.0-4.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 36/168] readline-0:8.2-13.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 37/168] systemd-libs-0:257.6-1.fc43.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 38/168] util-linux-core-0:2.40.4-7.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 39/168] zlib-ng-compat-0:2.2.4-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 40/168] bzip2-libs-0:1.0.8-20.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 41/168] libacl-0:2.3.2-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 42/168] libcap-0:2.76-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 43/168] libgcc-0:15.1.1-2.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 44/168] libeconf-0:0.7.9-1.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 45/168] libsemanage-0:3.8.1-2.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 46/168] libxcrypt-0:4.4.38-7.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 47/168] setup-0:2.15.0-25.fc43.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 48/168] binutils-0:2.44-3.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 49/168] debugedit-0:5.1-6.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 50/168] elfutils-0:0.193-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 51/168] elfutils-libelf-0:0.193-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 52/168] file-0:5.46-4.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 53/168] libarchive-0:3.8.1-1.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 54/168] libstdc++-0:15.1.1-2.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 55/168] pkgconf-pkg-config-0:2.3.0-2. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 56/168] popt-0:1.19-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 57/168] rpm-0:5.99.90-5.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 58/168] rpm-build-libs-0:5.99.90-5.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 59/168] rpm-libs-0:5.99.90-5.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 60/168] zstd-0:1.5.7-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 61/168] curl-0:8.14.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 62/168] glibc-gconv-extra-0:2.41.9000 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 63/168] ansible-srpm-macros-0:1-17.1. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 64/168] build-reproducibility-srpm-ma 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 65/168] dwz-0:0.16-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 66/168] efi-srpm-macros-0:6-3.fc43.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 67/168] filesystem-srpm-macros-0:3.18 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 68/168] fonts-srpm-macros-1:2.0.5-22. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 69/168] forge-srpm-macros-0:0.4.0-2.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 70/168] fpc-srpm-macros-0:1.3-14.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 71/168] ghc-srpm-macros-0:1.9.2-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 72/168] gnat-srpm-macros-0:6-7.fc42.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 73/168] go-srpm-macros-0:3.6.0-7.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 74/168] java-srpm-macros-0:1-4.fc43.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 75/168] kernel-srpm-macros-0:1.0-25.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 76/168] lua-srpm-macros-0:1-15.fc42.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 77/168] ocaml-srpm-macros-0:10-4.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 78/168] openblas-srpm-macros-0:2-19.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 79/168] package-notes-srpm-macros-0:0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 80/168] perl-srpm-macros-0:1-57.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 81/168] pyproject-srpm-macros-0:1.18. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 82/168] python-srpm-macros-0:3.13-5.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 83/168] qt5-srpm-macros-0:5.15.17-1.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 84/168] qt6-srpm-macros-0:6.9.1-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 85/168] rust-srpm-macros-0:26.3-4.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 86/168] tree-sitter-srpm-macros-0:0.3 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 87/168] zig-srpm-macros-0:1-4.fc42.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 88/168] zip-0:3.0-43.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 89/168] pkgconf-0:2.3.0-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 90/168] pkgconf-m4-0:2.3.0-2.fc42.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 91/168] libpkgconf-0:2.3.0-2.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 92/168] ed-0:1.21-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 93/168] libattr-0:2.5.2-5.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 94/168] ncurses-base-0:6.5-5.20250125 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 95/168] libsepol-0:3.8-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 96/168] pcre2-0:10.45-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 97/168] libxml2-0:2.12.10-1.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 98/168] libzstd-0:1.5.7-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 99/168] lz4-libs-0:1.10.0-2.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [100/168] openssl-libs-1:3.5.0-5.fc43.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [101/168] glibc-common-0:2.41.9000-15.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [102/168] gmp-1:6.3.0-3.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [103/168] mpfr-0:4.2.2-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [104/168] file-libs-0:5.46-4.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [105/168] fedora-repos-0:43-0.2.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [106/168] elfutils-debuginfod-client-0: 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [107/168] elfutils-libs-0:0.193-2.fc43. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [108/168] coreutils-common-0:9.7-3.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [109/168] add-determinism-0:0.6.0-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [110/168] alternatives-0:1.33-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [111/168] jansson-0:2.14-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [112/168] lua-libs-0:5.4.8-1.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [113/168] rpm-sequoia-0:1.8.0-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [114/168] sqlite-libs-0:3.50.0-1.fc43.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [115/168] libgomp-0:15.1.1-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [116/168] rpm-sign-libs-0:5.99.90-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [117/168] pcre2-syntax-0:10.45-1.fc43.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [118/168] ca-certificates-0:2024.2.69_v 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [119/168] crypto-policies-0:20250603-1. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [120/168] fedora-gpg-keys-0:43-0.2.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [121/168] fedora-repos-rawhide-0:43-0.2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [122/168] elfutils-default-yama-scope-0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [123/168] json-c-0:0.18-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [124/168] libffi-0:3.4.8-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [125/168] p11-kit-0:0.25.5-8.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [126/168] p11-kit-trust-0:0.25.5-8.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [127/168] gnupg2-0:2.4.8-2.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [128/168] ima-evm-utils-libs-0:1.6.2-5. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [129/168] libfsverity-0:1.6-2.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [130/168] gpgverify-0:2.1-3.fc43.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [131/168] libtasn1-0:4.20.0-1.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [132/168] tpm2-tss-0:4.1.3-7.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [133/168] gnupg2-dirmngr-0:2.4.8-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [134/168] gnupg2-gpg-agent-0:2.4.8-2.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [135/168] gnupg2-gpgconf-0:2.4.8-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [136/168] gnupg2-keyboxd-0:2.4.8-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [137/168] gnupg2-verify-0:2.4.8-2.fc43. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [138/168] libassuan-0:2.5.7-3.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [139/168] libgcrypt-0:1.11.1-1.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [140/168] libgpg-error-0:1.55-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [141/168] npth-0:1.8-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [142/168] libusb1-0:1.0.28-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [143/168] libksba-0:1.6.7-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [144/168] gnutls-0:3.8.9-5.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [145/168] openldap-0:2.6.9-5.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [146/168] cyrus-sasl-lib-0:2.1.28-30.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [147/168] libevent-0:2.1.12-15.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [148/168] libtool-ltdl-0:2.5.4-4.fc42.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [149/168] libidn2-0:2.3.8-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [150/168] libunistring-0:1.1-9.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [151/168] nettle-0:3.10.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [152/168] gdbm-libs-1:1.23-9.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [153/168] fedora-release-0:43-0.16.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [154/168] systemd-standalone-sysusers-0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [155/168] gdb-minimal-0:16.3-1.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [156/168] xxhash-libs-0:0.8.3-2.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [157/168] fedora-release-identity-basic 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [158/168] libcurl-0:8.14.1-1.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [159/168] krb5-libs-0:1.21.3-6.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [160/168] libbrotli-0:1.1.0-6.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [161/168] libnghttp2-0:1.65.0-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [162/168] libpsl-0:0.21.5-5.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [163/168] libssh-0:0.11.1-4.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [164/168] keyutils-libs-0:1.6.3-5.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [165/168] libcom_err-0:1.47.2-3.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [166/168] libverto-0:0.3.2-10.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [167/168] libssh-config-0:0.11.1-4.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [168/168] publicsuffix-list-dafsa-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [168/168] Total 100% | 0.0 B/s | 0.0 B | 00m00s Running transaction [ 1/170] Verify package files 100% | 1.8 KiB/s | 168.0 B | 00m00s [ 2/170] Prepare transaction 100% | 4.3 KiB/s | 168.0 B | 00m00s [ 3/170] Installing libgcc-0:15.1.1-2. 100% | 262.0 MiB/s | 268.3 KiB | 00m00s [ 4/170] Installing publicsuffix-list- 100% | 0.0 B/s | 69.2 KiB | 00m00s [ 5/170] Installing libssh-config-0:0. 100% | 0.0 B/s | 816.0 B | 00m00s [ 6/170] Installing fedora-release-ide 100% | 0.0 B/s | 920.0 B | 00m00s [ 7/170] Installing fedora-repos-rawhi 100% | 0.0 B/s | 2.4 KiB | 00m00s [ 8/170] Installing fedora-gpg-keys-0: 100% | 42.9 MiB/s | 175.9 KiB | 00m00s [ 9/170] Installing fedora-repos-0:43- 100% | 0.0 B/s | 5.7 KiB | 00m00s [ 10/170] Installing fedora-release-com 100% | 24.1 MiB/s | 24.7 KiB | 00m00s [ 11/170] Installing fedora-release-0:4 100% | 20.2 KiB/s | 124.0 B | 00m00s >>> Running sysusers scriptlet: setup-0:2.15.0-25.fc43.noarch >>> Finished sysusers scriptlet: setup-0:2.15.0-25.fc43.noarch >>> Scriptlet output: >>> Creating group 'adm' with GID 4. >>> Creating group 'audio' with GID 63. >>> Creating group 'cdrom' with GID 11. >>> Creating group 'clock' with GID 103. >>> Creating group 'dialout' with GID 18. >>> Creating group 'disk' with GID 6. >>> Creating group 'floppy' with GID 19. >>> Creating group 'ftp' with GID 50. >>> Creating group 'games' with GID 20. >>> Creating group 'input' with GID 104. >>> Creating group 'kmem' with GID 9. >>> Creating group 'kvm' with GID 36. >>> Creating group 'lock' with GID 54. >>> Creating group 'lp' with GID 7. >>> Creating group 'mail' with GID 12. >>> Creating group 'man' with GID 15. >>> Creating group 'mem' with GID 8. >>> Creating group 'nobody' with GID 65534. >>> Creating group 'render' with GID 105. >>> Creating group 'root' with GID 0. >>> Creating group 'sgx' with GID 106. >>> Creating group 'sys' with GID 3. >>> Creating group 'tape' with GID 33. >>> Creating group 'tty' with GID 5. >>> Creating group 'users' with GID 100. >>> Creating group 'utmp' with GID 22. >>> Creating group 'video' with GID 39. >>> Creating group 'wheel' with GID 10. >>> Creating user 'adm' (adm) with UID 3 and GID 4. >>> Creating group 'bin' with GID 1. >>> Creating user 'bin' (bin) with UID 1 and GID 1. >>> Creating group 'daemon' with GID 2. >>> Creating user 'daemon' (daemon) with UID 2 and GID 2. >>> Creating user 'ftp' (FTP User) with UID 14 and GID 50. >>> Creating user 'games' (games) with UID 12 and GID 100. >>> Creating user 'halt' (halt) with UID 7 and GID 0. >>> Creating user 'lp' (lp) with UID 4 and GID 7. >>> Creating user 'mail' (mail) with UID 8 and GID 12. >>> Creating user 'nobody' (Kernel Overflow User) with UID 65534 and GID 65534. >>> Creating user 'operator' (operator) with UID 11 and GID 0. >>> Creating user 'root' (Super User) with UID 0 and GID 0. >>> Creating user 'shutdown' (shutdown) with UID 6 and GID 0. >>> Creating user 'sync' (sync) with UID 5 and GID 0. >>> [ 12/170] Installing setup-0:2.15.0-25. 100% | 54.9 MiB/s | 730.6 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 13/170] Installing filesystem-0:3.18- 100% | 3.0 MiB/s | 212.5 KiB | 00m00s [ 14/170] Installing pcre2-syntax-0:10. 100% | 269.9 MiB/s | 276.4 KiB | 00m00s [ 15/170] Installing coreutils-common-0 100% | 389.4 MiB/s | 11.3 MiB | 00m00s [ 16/170] Installing ncurses-base-0:6.5 100% | 86.0 MiB/s | 352.2 KiB | 00m00s [ 17/170] Installing bash-0:5.2.37-3.fc 100% | 292.2 MiB/s | 8.2 MiB | 00m00s [ 18/170] Installing glibc-common-0:2.4 100% | 72.9 MiB/s | 1.0 MiB | 00m00s [ 19/170] Installing glibc-gconv-extra- 100% | 304.7 MiB/s | 7.3 MiB | 00m00s [ 20/170] Installing glibc-0:2.41.9000- 100% | 202.4 MiB/s | 6.7 MiB | 00m00s [ 21/170] Installing ncurses-libs-0:6.5 100% | 310.1 MiB/s | 952.8 KiB | 00m00s [ 22/170] Installing glibc-minimal-lang 100% | 0.0 B/s | 124.0 B | 00m00s [ 23/170] Installing zlib-ng-compat-0:2 100% | 0.0 B/s | 138.4 KiB | 00m00s [ 24/170] Installing bzip2-libs-0:1.0.8 100% | 0.0 B/s | 85.7 KiB | 00m00s [ 25/170] Installing libgpg-error-0:1.5 100% | 69.2 MiB/s | 921.1 KiB | 00m00s [ 26/170] Installing libstdc++-0:15.1.1 100% | 405.2 MiB/s | 2.8 MiB | 00m00s [ 27/170] Installing xz-libs-1:5.8.1-1. 100% | 213.8 MiB/s | 218.9 KiB | 00m00s [ 28/170] Installing libassuan-0:2.5.7- 100% | 165.6 MiB/s | 169.6 KiB | 00m00s [ 29/170] Installing libgcrypt-0:1.11.1 100% | 393.8 MiB/s | 1.6 MiB | 00m00s [ 30/170] Installing readline-0:8.2-13. 100% | 475.7 MiB/s | 487.1 KiB | 00m00s [ 31/170] Installing libuuid-0:2.40.4-7 100% | 0.0 B/s | 38.4 KiB | 00m00s [ 32/170] Installing gmp-1:6.3.0-3.fc43 100% | 401.1 MiB/s | 821.5 KiB | 00m00s [ 33/170] Installing popt-0:1.19-8.fc42 100% | 68.1 MiB/s | 139.4 KiB | 00m00s [ 34/170] Installing npth-0:1.8-2.fc42. 100% | 0.0 B/s | 50.7 KiB | 00m00s [ 35/170] Installing libblkid-0:2.40.4- 100% | 257.2 MiB/s | 263.4 KiB | 00m00s [ 36/170] Installing libxcrypt-0:4.4.38 100% | 280.4 MiB/s | 287.2 KiB | 00m00s [ 37/170] Installing libzstd-0:1.5.7-1. 100% | 395.1 MiB/s | 809.1 KiB | 00m00s [ 38/170] Installing elfutils-libelf-0: 100% | 388.8 MiB/s | 1.2 MiB | 00m00s [ 39/170] Installing gnupg2-gpgconf-0:2 100% | 22.4 MiB/s | 252.1 KiB | 00m00s [ 40/170] Installing libattr-0:2.5.2-5. 100% | 0.0 B/s | 28.1 KiB | 00m00s [ 41/170] Installing libacl-0:2.3.2-3.f 100% | 0.0 B/s | 39.2 KiB | 00m00s [ 42/170] Installing sqlite-libs-0:3.50 100% | 379.1 MiB/s | 1.5 MiB | 00m00s [ 43/170] Installing libtasn1-0:4.20.0- 100% | 173.9 MiB/s | 178.1 KiB | 00m00s [ 44/170] Installing libunistring-0:1.1 100% | 345.3 MiB/s | 1.7 MiB | 00m00s [ 45/170] Installing libidn2-0:2.3.8-1. 100% | 60.6 MiB/s | 558.7 KiB | 00m00s [ 46/170] Installing crypto-policies-0: 100% | 40.8 MiB/s | 167.3 KiB | 00m00s [ 47/170] Installing dwz-0:0.16-1.fc43. 100% | 23.5 MiB/s | 288.5 KiB | 00m00s [ 48/170] Installing mpfr-0:4.2.2-1.fc4 100% | 405.5 MiB/s | 830.4 KiB | 00m00s [ 49/170] Installing gawk-0:5.3.2-1.fc4 100% | 113.5 MiB/s | 1.8 MiB | 00m00s [ 50/170] Installing libksba-0:1.6.7-3. 100% | 395.6 MiB/s | 405.1 KiB | 00m00s [ 51/170] Installing unzip-0:6.0-66.fc4 100% | 35.0 MiB/s | 393.8 KiB | 00m00s [ 52/170] Installing file-libs-0:5.46-4 100% | 697.5 MiB/s | 11.9 MiB | 00m00s [ 53/170] Installing file-0:5.46-4.fc43 100% | 9.9 MiB/s | 101.7 KiB | 00m00s [ 54/170] Installing libcap-ng-0:0.8.5- 100% | 0.0 B/s | 74.8 KiB | 00m00s [ 55/170] Installing audit-libs-0:4.0.4 100% | 345.0 MiB/s | 353.3 KiB | 00m00s [ 56/170] Installing libsmartcols-0:2.4 100% | 177.3 MiB/s | 181.5 KiB | 00m00s [ 57/170] Installing libeconf-0:0.7.9-1 100% | 0.0 B/s | 66.5 KiB | 00m00s [ 58/170] Installing pam-libs-0:1.7.0-4 100% | 126.1 MiB/s | 129.1 KiB | 00m00s [ 59/170] Installing libcap-0:2.76-1.fc 100% | 19.0 MiB/s | 214.3 KiB | 00m00s [ 60/170] Installing systemd-libs-0:257 100% | 372.0 MiB/s | 2.2 MiB | 00m00s [ 61/170] Installing libsepol-0:3.8-1.f 100% | 403.8 MiB/s | 827.0 KiB | 00m00s [ 62/170] Installing pcre2-0:10.45-1.fc 100% | 341.4 MiB/s | 699.1 KiB | 00m00s [ 63/170] Installing libselinux-0:3.8-2 100% | 189.7 MiB/s | 194.3 KiB | 00m00s [ 64/170] Installing grep-0:3.12-1.fc43 100% | 71.6 MiB/s | 1.0 MiB | 00m00s [ 65/170] Installing sed-0:4.9-4.fc42.x 100% | 60.4 MiB/s | 865.5 KiB | 00m00s [ 66/170] Installing findutils-1:4.10.0 100% | 117.1 MiB/s | 1.9 MiB | 00m00s [ 67/170] Installing xz-1:5.8.1-1.fc43. 100% | 83.2 MiB/s | 1.3 MiB | 00m00s [ 68/170] Installing libmount-0:2.40.4- 100% | 349.0 MiB/s | 357.4 KiB | 00m00s [ 69/170] Installing lz4-libs-0:1.10.0- 100% | 154.7 MiB/s | 158.5 KiB | 00m00s [ 70/170] Installing alternatives-0:1.3 100% | 5.7 MiB/s | 63.8 KiB | 00m00s [ 71/170] Installing lua-libs-0:5.4.8-1 100% | 275.4 MiB/s | 282.0 KiB | 00m00s [ 72/170] Installing json-c-0:0.18-2.fc 100% | 0.0 B/s | 88.0 KiB | 00m00s [ 73/170] Installing libffi-0:3.4.8-1.f 100% | 82.4 MiB/s | 84.3 KiB | 00m00s [ 74/170] Installing p11-kit-0:0.25.5-8 100% | 128.5 MiB/s | 2.2 MiB | 00m00s [ 75/170] Installing p11-kit-trust-0:0. 100% | 21.5 MiB/s | 397.1 KiB | 00m00s [ 76/170] Installing openssl-libs-1:3.5 100% | 403.8 MiB/s | 8.9 MiB | 00m00s [ 77/170] Installing coreutils-0:9.7-3. 100% | 181.5 MiB/s | 5.4 MiB | 00m00s [ 78/170] Installing ca-certificates-0: 100% | 2.1 MiB/s | 2.4 MiB | 00m01s [ 79/170] Installing gzip-0:1.13-3.fc42 100% | 29.9 MiB/s | 398.4 KiB | 00m00s [ 80/170] Installing rpm-sequoia-0:1.8. 100% | 357.7 MiB/s | 2.5 MiB | 00m00s [ 81/170] Installing libfsverity-0:1.6- 100% | 0.0 B/s | 33.5 KiB | 00m00s [ 82/170] Installing libevent-0:2.1.12- 100% | 295.2 MiB/s | 906.9 KiB | 00m00s [ 83/170] Installing zstd-0:1.5.7-1.fc4 100% | 122.1 MiB/s | 1.7 MiB | 00m00s [ 84/170] Installing util-linux-core-0: 100% | 89.2 MiB/s | 1.4 MiB | 00m00s [ 85/170] Installing tar-2:1.35-5.fc42. 100% | 155.9 MiB/s | 3.0 MiB | 00m00s [ 86/170] Installing libsemanage-0:3.8. 100% | 299.0 MiB/s | 306.2 KiB | 00m00s [ 87/170] Installing systemd-standalone 100% | 24.7 MiB/s | 278.0 KiB | 00m00s [ 88/170] Installing rpm-libs-0:5.99.90 100% | 303.2 MiB/s | 931.3 KiB | 00m00s [ 89/170] Installing libusb1-0:1.0.28-2 100% | 24.1 MiB/s | 172.7 KiB | 00m00s >>> Running sysusers scriptlet: tpm2-tss-0:4.1.3-7.fc43.x86_64 >>> Finished sysusers scriptlet: tpm2-tss-0:4.1.3-7.fc43.x86_64 >>> Scriptlet output: >>> Creating group 'tss' with GID 59. >>> Creating user 'tss' (Account used for TPM access) with UID 59 and GID 59. >>> [ 90/170] Installing tpm2-tss-0:4.1.3-7 100% | 261.3 MiB/s | 1.6 MiB | 00m00s [ 91/170] Installing ima-evm-utils-libs 100% | 60.5 MiB/s | 62.0 KiB | 00m00s [ 92/170] Installing gnupg2-gpg-agent-0 100% | 33.0 MiB/s | 675.4 KiB | 00m00s [ 93/170] Installing zip-0:3.0-43.fc42. 100% | 52.8 MiB/s | 702.4 KiB | 00m00s [ 94/170] Installing gnupg2-keyboxd-0:2 100% | 33.0 MiB/s | 202.7 KiB | 00m00s [ 95/170] Installing libpsl-0:0.21.5-5. 100% | 75.7 MiB/s | 77.5 KiB | 00m00s [ 96/170] Installing libfdisk-0:2.40.4- 100% | 364.7 MiB/s | 373.5 KiB | 00m00s [ 97/170] Installing gnupg2-verify-0:2. 100% | 26.3 MiB/s | 349.9 KiB | 00m00s [ 98/170] Installing nettle-0:3.10.1-1. 100% | 387.5 MiB/s | 793.6 KiB | 00m00s [ 99/170] Installing gnutls-0:3.8.9-5.f 100% | 397.1 MiB/s | 3.6 MiB | 00m00s [100/170] Installing libxml2-0:2.12.10- 100% | 113.1 MiB/s | 1.7 MiB | 00m00s [101/170] Installing libarchive-0:3.8.1 100% | 310.2 MiB/s | 953.1 KiB | 00m00s [102/170] Installing bzip2-0:1.0.8-20.f 100% | 9.2 MiB/s | 103.8 KiB | 00m00s [103/170] Installing add-determinism-0: 100% | 145.1 MiB/s | 2.5 MiB | 00m00s [104/170] Installing build-reproducibil 100% | 0.0 B/s | 1.0 KiB | 00m00s [105/170] Installing cpio-0:2.15-2.fc41 100% | 78.6 MiB/s | 1.1 MiB | 00m00s [106/170] Installing diffutils-0:3.12-2 100% | 97.6 MiB/s | 1.6 MiB | 00m00s [107/170] Installing libpkgconf-0:2.3.0 100% | 77.4 MiB/s | 79.2 KiB | 00m00s [108/170] Installing pkgconf-0:2.3.0-2. 100% | 8.1 MiB/s | 91.0 KiB | 00m00s [109/170] Installing ed-0:1.21-2.fc42.x 100% | 13.2 MiB/s | 148.8 KiB | 00m00s [110/170] Installing patch-0:2.8-1.fc43 100% | 20.3 MiB/s | 228.3 KiB | 00m00s [111/170] Installing jansson-0:2.14-2.f 100% | 92.2 MiB/s | 94.4 KiB | 00m00s [112/170] Installing libgomp-0:15.1.1-2 100% | 263.9 MiB/s | 540.5 KiB | 00m00s [113/170] Installing libtool-ltdl-0:2.5 100% | 0.0 B/s | 71.2 KiB | 00m00s [114/170] Installing gdbm-libs-1:1.23-9 100% | 128.5 MiB/s | 131.6 KiB | 00m00s [115/170] Installing cyrus-sasl-lib-0:2 100% | 144.0 MiB/s | 2.3 MiB | 00m00s [116/170] Installing openldap-0:2.6.9-5 100% | 321.7 MiB/s | 658.9 KiB | 00m00s [117/170] Installing gnupg2-dirmngr-0:2 100% | 33.7 MiB/s | 621.1 KiB | 00m00s [118/170] Installing gnupg2-0:2.4.8-2.f 100% | 234.0 MiB/s | 6.6 MiB | 00m00s [119/170] Installing rpm-sign-libs-0:5. 100% | 0.0 B/s | 40.5 KiB | 00m00s [120/170] Installing gpgverify-0:2.1-3. 100% | 0.0 B/s | 9.4 KiB | 00m00s [121/170] Installing xxhash-libs-0:0.8. 100% | 0.0 B/s | 91.6 KiB | 00m00s [122/170] Installing libbrotli-0:1.1.0- 100% | 274.6 MiB/s | 843.6 KiB | 00m00s [123/170] Installing libnghttp2-0:1.65. 100% | 159.5 MiB/s | 163.3 KiB | 00m00s [124/170] Installing keyutils-libs-0:1. 100% | 0.0 B/s | 59.7 KiB | 00m00s [125/170] Installing libcom_err-0:1.47. 100% | 0.0 B/s | 68.2 KiB | 00m00s [126/170] Installing libverto-0:0.3.2-1 100% | 0.0 B/s | 27.2 KiB | 00m00s [127/170] Installing krb5-libs-0:1.21.3 100% | 327.4 MiB/s | 2.3 MiB | 00m00s [128/170] Installing libssh-0:0.11.1-4. 100% | 277.1 MiB/s | 567.5 KiB | 00m00s [129/170] Installing libcurl-0:8.14.1-1 100% | 291.8 MiB/s | 896.3 KiB | 00m00s [130/170] Installing curl-0:8.14.1-1.fc 100% | 23.3 MiB/s | 476.8 KiB | 00m00s [131/170] Installing rpm-0:5.99.90-5.fc 100% | 83.6 MiB/s | 2.5 MiB | 00m00s [132/170] Installing efi-srpm-macros-0: 100% | 0.0 B/s | 41.1 KiB | 00m00s [133/170] Installing java-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [134/170] Installing lua-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [135/170] Installing tree-sitter-srpm-m 100% | 0.0 B/s | 8.9 KiB | 00m00s [136/170] Installing zig-srpm-macros-0: 100% | 0.0 B/s | 1.7 KiB | 00m00s [137/170] Installing filesystem-srpm-ma 100% | 0.0 B/s | 38.9 KiB | 00m00s [138/170] Installing elfutils-default-y 100% | 510.7 KiB/s | 2.0 KiB | 00m00s [139/170] Installing elfutils-libs-0:0. 100% | 223.1 MiB/s | 685.2 KiB | 00m00s [140/170] Installing elfutils-debuginfo 100% | 6.5 MiB/s | 86.2 KiB | 00m00s [141/170] Installing binutils-0:2.44-3. 100% | 345.3 MiB/s | 25.9 MiB | 00m00s [142/170] Installing elfutils-0:0.193-2 100% | 162.4 MiB/s | 2.9 MiB | 00m00s [143/170] Installing gdb-minimal-0:16.3 100% | 301.1 MiB/s | 13.2 MiB | 00m00s [144/170] Installing debugedit-0:5.1-6. 100% | 17.3 MiB/s | 195.4 KiB | 00m00s [145/170] Installing rpm-build-libs-0:5 100% | 259.0 MiB/s | 265.2 KiB | 00m00s [146/170] Installing pkgconf-m4-0:2.3.0 100% | 0.0 B/s | 14.8 KiB | 00m00s [147/170] Installing pkgconf-pkg-config 100% | 161.2 KiB/s | 1.8 KiB | 00m00s [148/170] Installing rust-srpm-macros-0 100% | 0.0 B/s | 5.6 KiB | 00m00s [149/170] Installing qt6-srpm-macros-0: 100% | 0.0 B/s | 740.0 B | 00m00s [150/170] Installing qt5-srpm-macros-0: 100% | 0.0 B/s | 776.0 B | 00m00s [151/170] Installing perl-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [152/170] Installing package-notes-srpm 100% | 0.0 B/s | 2.0 KiB | 00m00s [153/170] Installing openblas-srpm-macr 100% | 0.0 B/s | 392.0 B | 00m00s [154/170] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.2 KiB | 00m00s [155/170] Installing kernel-srpm-macros 100% | 0.0 B/s | 2.3 KiB | 00m00s [156/170] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [157/170] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [158/170] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [159/170] Installing ansible-srpm-macro 100% | 0.0 B/s | 36.2 KiB | 00m00s [160/170] Installing rpm-build-0:5.99.9 100% | 21.8 MiB/s | 290.3 KiB | 00m00s [161/170] Installing pyproject-srpm-mac 100% | 0.0 B/s | 2.5 KiB | 00m00s [162/170] Installing redhat-rpm-config- 100% | 91.7 MiB/s | 187.8 KiB | 00m00s [163/170] Installing forge-srpm-macros- 100% | 0.0 B/s | 40.3 KiB | 00m00s [164/170] Installing fonts-srpm-macros- 100% | 0.0 B/s | 57.0 KiB | 00m00s [165/170] Installing go-srpm-macros-0:3 100% | 0.0 B/s | 62.0 KiB | 00m00s [166/170] Installing python-srpm-macros 100% | 51.8 MiB/s | 53.0 KiB | 00m00s [167/170] Installing util-linux-0:2.40. 100% | 108.2 MiB/s | 3.5 MiB | 00m00s [168/170] Installing shadow-utils-2:4.1 100% | 144.8 MiB/s | 4.1 MiB | 00m00s [169/170] Installing which-0:2.23-1.fc4 100% | 7.6 MiB/s | 85.6 KiB | 00m00s [170/170] Installing info-0:7.2-3.fc42. 100% | 232.0 KiB/s | 358.3 KiB | 00m02s Warning: skipped OpenPGP checks for 168 packages from repository: http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Finish: installing minimal buildroot with dnf5 Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: add-determinism-0.6.0-1.fc43.x86_64 alternatives-1.33-1.fc43.x86_64 ansible-srpm-macros-1-17.1.fc42.noarch audit-libs-4.0.4-2.fc43.x86_64 bash-5.2.37-3.fc43.x86_64 binutils-2.44-3.fc43.x86_64 build-reproducibility-srpm-macros-0.6.0-1.fc43.noarch bzip2-1.0.8-20.fc42.x86_64 bzip2-libs-1.0.8-20.fc42.x86_64 ca-certificates-2024.2.69_v8.0.401-5.fc42.noarch coreutils-9.7-3.fc43.x86_64 coreutils-common-9.7-3.fc43.x86_64 cpio-2.15-2.fc41.x86_64 crypto-policies-20250603-1.git3a584b3.fc43.noarch curl-8.14.1-1.fc43.x86_64 cyrus-sasl-lib-2.1.28-30.fc42.x86_64 debugedit-5.1-6.fc43.x86_64 diffutils-3.12-2.fc43.x86_64 dwz-0.16-1.fc43.x86_64 ed-1.21-2.fc42.x86_64 efi-srpm-macros-6-3.fc43.noarch elfutils-0.193-2.fc43.x86_64 elfutils-debuginfod-client-0.193-2.fc43.x86_64 elfutils-default-yama-scope-0.193-2.fc43.noarch elfutils-libelf-0.193-2.fc43.x86_64 elfutils-libs-0.193-2.fc43.x86_64 fedora-gpg-keys-43-0.2.noarch fedora-release-43-0.16.noarch fedora-release-common-43-0.16.noarch fedora-release-identity-basic-43-0.16.noarch fedora-repos-43-0.2.noarch fedora-repos-rawhide-43-0.2.noarch file-5.46-4.fc43.x86_64 file-libs-5.46-4.fc43.x86_64 filesystem-3.18-44.fc43.x86_64 filesystem-srpm-macros-3.18-44.fc43.noarch findutils-4.10.0-5.fc42.x86_64 fonts-srpm-macros-2.0.5-22.fc43.noarch forge-srpm-macros-0.4.0-2.fc42.noarch fpc-srpm-macros-1.3-14.fc42.noarch gawk-5.3.2-1.fc43.x86_64 gdb-minimal-16.3-1.fc43.x86_64 gdbm-libs-1.23-9.fc42.x86_64 ghc-srpm-macros-1.9.2-2.fc42.noarch glibc-2.41.9000-15.fc43.x86_64 glibc-common-2.41.9000-15.fc43.x86_64 glibc-gconv-extra-2.41.9000-15.fc43.x86_64 glibc-minimal-langpack-2.41.9000-15.fc43.x86_64 gmp-6.3.0-3.fc43.x86_64 gnat-srpm-macros-6-7.fc42.noarch gnupg2-2.4.8-2.fc43.x86_64 gnupg2-dirmngr-2.4.8-2.fc43.x86_64 gnupg2-gpg-agent-2.4.8-2.fc43.x86_64 gnupg2-gpgconf-2.4.8-2.fc43.x86_64 gnupg2-keyboxd-2.4.8-2.fc43.x86_64 gnupg2-verify-2.4.8-2.fc43.x86_64 gnutls-3.8.9-5.fc43.x86_64 go-srpm-macros-3.6.0-7.fc43.noarch gpgverify-2.1-3.fc43.noarch grep-3.12-1.fc43.x86_64 gzip-1.13-3.fc42.x86_64 ima-evm-utils-libs-1.6.2-5.fc43.x86_64 info-7.2-3.fc42.x86_64 jansson-2.14-2.fc42.x86_64 java-srpm-macros-1-4.fc43.noarch json-c-0.18-2.fc42.x86_64 kernel-srpm-macros-1.0-25.fc42.noarch keyutils-libs-1.6.3-5.fc42.x86_64 krb5-libs-1.21.3-6.fc43.x86_64 libacl-2.3.2-3.fc42.x86_64 libarchive-3.8.1-1.fc43.x86_64 libassuan-2.5.7-3.fc42.x86_64 libattr-2.5.2-5.fc42.x86_64 libblkid-2.40.4-7.fc43.x86_64 libbrotli-1.1.0-6.fc42.x86_64 libcap-2.76-1.fc43.x86_64 libcap-ng-0.8.5-4.fc42.x86_64 libcom_err-1.47.2-3.fc42.x86_64 libcurl-8.14.1-1.fc43.x86_64 libeconf-0.7.9-1.fc43.x86_64 libevent-2.1.12-15.fc42.x86_64 libfdisk-2.40.4-7.fc43.x86_64 libffi-3.4.8-1.fc43.x86_64 libfsverity-1.6-2.fc42.x86_64 libgcc-15.1.1-2.fc43.x86_64 libgcrypt-1.11.1-1.fc43.x86_64 libgomp-15.1.1-2.fc43.x86_64 libgpg-error-1.55-1.fc43.x86_64 libidn2-2.3.8-1.fc43.x86_64 libksba-1.6.7-3.fc42.x86_64 libmount-2.40.4-7.fc43.x86_64 libnghttp2-1.65.0-1.fc43.x86_64 libpkgconf-2.3.0-2.fc42.x86_64 libpsl-0.21.5-5.fc42.x86_64 libselinux-3.8-2.fc43.x86_64 libsemanage-3.8.1-2.fc43.x86_64 libsepol-3.8-1.fc42.x86_64 libsmartcols-2.40.4-7.fc43.x86_64 libssh-0.11.1-4.fc42.x86_64 libssh-config-0.11.1-4.fc42.noarch libstdc++-15.1.1-2.fc43.x86_64 libtasn1-4.20.0-1.fc43.x86_64 libtool-ltdl-2.5.4-4.fc42.x86_64 libunistring-1.1-9.fc42.x86_64 libusb1-1.0.28-2.fc43.x86_64 libuuid-2.40.4-7.fc43.x86_64 libverto-0.3.2-10.fc42.x86_64 libxcrypt-4.4.38-7.fc43.x86_64 libxml2-2.12.10-1.fc43.x86_64 libzstd-1.5.7-1.fc43.x86_64 lua-libs-5.4.8-1.fc43.x86_64 lua-srpm-macros-1-15.fc42.noarch lz4-libs-1.10.0-2.fc42.x86_64 mpfr-4.2.2-1.fc43.x86_64 ncurses-base-6.5-5.20250125.fc42.noarch ncurses-libs-6.5-5.20250125.fc42.x86_64 nettle-3.10.1-1.fc43.x86_64 npth-1.8-2.fc42.x86_64 ocaml-srpm-macros-10-4.fc42.noarch openblas-srpm-macros-2-19.fc42.noarch openldap-2.6.9-5.fc43.x86_64 openssl-libs-3.5.0-5.fc43.x86_64 p11-kit-0.25.5-8.fc43.x86_64 p11-kit-trust-0.25.5-8.fc43.x86_64 package-notes-srpm-macros-0.5-13.fc42.noarch pam-libs-1.7.0-4.fc42.x86_64 patch-2.8-1.fc43.x86_64 pcre2-10.45-1.fc43.x86_64 pcre2-syntax-10.45-1.fc43.noarch perl-srpm-macros-1-57.fc42.noarch pkgconf-2.3.0-2.fc42.x86_64 pkgconf-m4-2.3.0-2.fc42.noarch pkgconf-pkg-config-2.3.0-2.fc42.x86_64 popt-1.19-8.fc42.x86_64 publicsuffix-list-dafsa-20250116-1.fc42.noarch pyproject-srpm-macros-1.18.1-1.fc43.noarch python-srpm-macros-3.13-5.fc43.noarch qt5-srpm-macros-5.15.17-1.fc43.noarch qt6-srpm-macros-6.9.1-1.fc43.noarch readline-8.2-13.fc43.x86_64 redhat-rpm-config-343-6.fc43.noarch rpm-5.99.90-5.fc43.x86_64 rpm-build-5.99.90-5.fc43.x86_64 rpm-build-libs-5.99.90-5.fc43.x86_64 rpm-libs-5.99.90-5.fc43.x86_64 rpm-sequoia-1.8.0-1.fc43.x86_64 rpm-sign-libs-5.99.90-5.fc43.x86_64 rust-srpm-macros-26.3-4.fc42.noarch sed-4.9-4.fc42.x86_64 setup-2.15.0-25.fc43.noarch shadow-utils-4.17.4-1.fc43.x86_64 sqlite-libs-3.50.0-1.fc43.x86_64 systemd-libs-257.6-1.fc43.x86_64 systemd-standalone-sysusers-257.6-1.fc43.x86_64 tar-1.35-5.fc42.x86_64 tpm2-tss-4.1.3-7.fc43.x86_64 tree-sitter-srpm-macros-0.3.0-1.fc43.noarch unzip-6.0-66.fc42.x86_64 util-linux-2.40.4-7.fc43.x86_64 util-linux-core-2.40.4-7.fc43.x86_64 which-2.23-1.fc42.x86_64 xxhash-libs-0.8.3-2.fc42.x86_64 xz-5.8.1-1.fc43.x86_64 xz-libs-5.8.1-1.fc43.x86_64 zig-srpm-macros-1-4.fc42.noarch zip-3.0-43.fc42.x86_64 zlib-ng-compat-2.2.4-2.fc43.x86_64 zstd-1.5.7-1.fc43.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Wrote: /builddir/build/SRPMS/python-xbout-0.3.6-5.fc43.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1749601066.731059/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-1svbfrzb/python-xbout/python-xbout.spec) Config(child) 0 minutes 10 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/python-xbout-0.3.6-5.fc43.src.rpm) Config(fedora-rawhide-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1749601066.731059/root. INFO: reusing tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1749601066.731059/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1749601066.731059/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-5.99.90-5.fc43.x86_64 rpm-sequoia-1.8.0-1.fc43.x86_64 dnf5-5.2.13.1-2.fc43.x86_64 dnf5-plugins-5.2.13.1-2.fc43.x86_64 Finish: chroot init Start: build phase for python-xbout-0.3.6-5.fc43.src.rpm Start: build setup for python-xbout-0.3.6-5.fc43.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Wrote: /builddir/build/SRPMS/python-xbout-0.3.6-5.fc43.src.rpm Updating and loading repositories: fedora 100% | 233.6 KiB/s | 9.1 KiB | 00m00s Copr repository 100% | 66.1 KiB/s | 1.5 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 159.5 KiB/s | 3.8 KiB | 00m00s Copr repository 100% | 281.4 KiB/s | 10.4 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: python3-boutdata noarch 0.2.1-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 544.3 KiB python3-devel x86_64 3.13.3-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB python3-pytest noarch 8.3.5-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 21.0 MiB python3-sphinx noarch 1:8.2.3-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.4 MiB python3-sphinx-autodoc-typehints noarch 3.1.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 118.8 KiB Installing dependencies: abattis-cantarell-vf-fonts noarch 0.301-14.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 192.7 KiB blosc x86_64 1.21.6-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 126.2 KiB cairo x86_64 1.18.4-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB default-fonts-core-sans noarch 4.2-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.9 KiB dejavu-sans-fonts noarch 2.37-25.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.5 MiB expat x86_64 2.7.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 294.2 KiB flexiblas x86_64 3.4.5-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 50.4 KiB flexiblas-netlib x86_64 3.4.5-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 10.9 MiB flexiblas-openblas-openmp x86_64 3.4.5-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 39.2 KiB fontconfig x86_64 2.16.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 760.8 KiB fonts-filesystem noarch 1:2.0.5-22.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B freetype x86_64 2.13.3-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 858.2 KiB fribidi x86_64 1.0.16-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 194.3 KiB glib2 x86_64 2.85.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 14.7 MiB google-noto-fonts-common noarch 20250501-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 17.7 KiB google-noto-sans-vf-fonts noarch 20250501-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.4 MiB graphite2 x86_64 1.3.14-18.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 195.8 KiB harfbuzz x86_64 11.2.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.8 MiB hdf-libs x86_64 4.3.0-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 687.1 KiB hdf5 x86_64 1.14.6-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.4 MiB jbigkit-libs x86_64 2.1-31.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 121.4 KiB lcms2 x86_64 2.16-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 437.7 KiB libX11 x86_64 1.8.11-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.3 MiB libX11-common noarch 1.8.11-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 MiB libXau x86_64 1.0.12-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 76.9 KiB libXext x86_64 1.3.6-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 90.0 KiB libXrender x86_64 0.9.12-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 50.0 KiB libaec x86_64 1.1.3-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 97.9 KiB libb2 x86_64 0.98.1-13.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 46.1 KiB libgfortran x86_64 15.1.1-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.3 MiB libimagequant x86_64 4.0.3-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 704.3 KiB libjpeg-turbo x86_64 3.1.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 803.2 KiB liblerc x86_64 4.0.0-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 636.1 KiB libpng x86_64 2:1.6.48-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 237.7 KiB libqhull_r x86_64 1:8.0.2-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 483.3 KiB libquadmath x86_64 15.1.1-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 317.9 KiB libraqm x86_64 0.10.1-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 28.6 KiB libtiff x86_64 4.7.0-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 619.1 KiB libtirpc x86_64 1.3.6-1.rc3.fc42.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 199.0 KiB libwebp x86_64 1.5.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 947.6 KiB libxcb x86_64 1.17.0-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 MiB libzip x86_64 1.11.4-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 135.8 KiB lzo x86_64 2.10-14.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 170.9 KiB mpdecimal x86_64 4.0.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 217.2 KiB netcdf x86_64 4.9.2-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB openblas x86_64 0.3.29-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 111.7 KiB openblas-openmp x86_64 0.3.29-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 43.7 MiB openjpeg x86_64 2.5.3-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 451.8 KiB pixman x86_64 0.44.2-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 674.2 KiB pyproject-rpm-macros noarch 1.18.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 114.5 KiB python-pip-wheel noarch 25.1.1-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 MiB python-rpm-macros noarch 3.13-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 22.1 KiB python3 x86_64 3.13.3-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 28.7 KiB python3-babel noarch 2.17.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 30.2 MiB python3-boututils noarch 0.2.1-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 434.3 KiB python3-cairo x86_64 1.25.1-6.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 497.1 KiB python3-certifi noarch 2024.08.30-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.8 KiB python3-cftime x86_64 1.6.4-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 628.2 KiB python3-charset-normalizer noarch 3.4.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 330.1 KiB python3-contourpy x86_64 1.3.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 838.8 KiB python3-cycler noarch 0.11.0-15.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 37.2 KiB python3-cython x86_64 3.0.12-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 18.5 MiB python3-dateutil noarch 1:2.9.0.post0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 859.4 KiB python3-docutils noarch 0.21.2-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.9 MiB python3-fonttools x86_64 4.58.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 18.3 MiB python3-idna noarch 3.10-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 628.0 KiB python3-imagesize noarch 1.4.1-10.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 35.3 KiB python3-iniconfig noarch 1.1.1-25.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 20.6 KiB python3-jinja2 noarch 3.1.6-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.9 MiB python3-kiwisolver x86_64 1.4.8-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 149.7 KiB python3-libs x86_64 3.13.3-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 39.9 MiB python3-markupsafe x86_64 3.0.2-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 55.8 KiB python3-matplotlib x86_64 3.10.3-6.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 31.0 MiB python3-matplotlib-data-fonts x86_64 3.10.3-6.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.9 MiB python3-mpmath noarch 1.3.0-12.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.1 MiB python3-natsort noarch 8.4.0-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 252.2 KiB python3-netcdf4 x86_64 1.7.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.4 MiB python3-numpy x86_64 1:2.2.6-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40.3 MiB python3-numpy-f2py x86_64 1:2.2.6-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.0 MiB python3-olefile noarch 0.47-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 339.5 KiB python3-packaging noarch 25.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 563.4 KiB python3-pillow x86_64 11.2.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.0 MiB python3-platformdirs noarch 4.2.2-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 162.0 KiB python3-pluggy noarch 1.5.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 192.7 KiB python3-pooch noarch 1.8.2-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 620.8 KiB python3-pygments noarch 2.19.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 10.8 MiB python3-pyparsing noarch 3.1.2-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 996.4 KiB python3-requests noarch 2.32.3-12.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 483.4 KiB python3-roman-numerals-py noarch 3.1.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.7 KiB python3-rpm-generators noarch 14-12.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 81.7 KiB python3-rpm-macros noarch 3.13-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.4 KiB python3-scipy x86_64 1.14.1-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 67.2 MiB python3-six noarch 1.17.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 116.9 KiB python3-snowballstemmer noarch 3.0.1-4.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB python3-sphinx-theme-alabaster noarch 0.7.16-6.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 41.9 KiB python3-sympy x86_64 1.14.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 79.2 MiB python3-urllib3 noarch 2.4.0-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB snappy x86_64 1.2.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 71.8 KiB tzdata noarch 2025b-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB xml-common noarch 0.6.3-66.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 78.4 KiB Transaction Summary: Installing: 105 packages Total size of inbound packages is 114 MiB. Need to download 103 MiB. After this operation, 521 MiB extra will be used (install 521 MiB, remove 0 B). [ 1/105] python3-devel-0:3.13.3-3.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/105] python3-0:3.13.3-3.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/105] python3-packaging-0:25.0-1.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/105] python3-libs-0:3.13.3-3.fc43. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/105] expat-0:2.7.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/105] libb2-0:0.98.1-13.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/105] mpdecimal-0:4.0.1-1.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/105] python-pip-wheel-0:25.1.1-3.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/105] tzdata-0:2025b-1.fc43.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 10/105] pyproject-rpm-macros-0:1.18.1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 11/105] python-rpm-macros-0:3.13-5.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 12/105] python3-rpm-generators-0:14-1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 13/105] python3-rpm-macros-0:3.13-5.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 14/105] python3-pytest-0:8.3.5-2.fc43 100% | 56.3 MiB/s | 2.0 MiB | 00m00s [ 15/105] python3-boutdata-0:0.2.1-8.fc 100% | 2.8 MiB/s | 146.7 KiB | 00m00s [ 16/105] python3-sphinx-autodoc-typehi 100% | 705.3 KiB/s | 51.5 KiB | 00m00s [ 17/105] python3-docutils-0:0.21.2-2.f 100% | 50.7 MiB/s | 1.0 MiB | 00m00s [ 18/105] python3-babel-0:2.17.0-1.fc42 100% | 134.9 MiB/s | 6.7 MiB | 00m00s [ 19/105] python3-imagesize-0:1.4.1-10. 100% | 2.7 MiB/s | 22.0 KiB | 00m00s [ 20/105] python3-sphinx-1:8.2.3-5.fc43 100% | 38.7 MiB/s | 2.6 MiB | 00m00s [ 21/105] python3-requests-0:2.32.3-12. 100% | 24.3 MiB/s | 149.2 KiB | 00m00s [ 22/105] python3-jinja2-0:3.1.6-1.fc43 100% | 51.5 MiB/s | 474.8 KiB | 00m00s [ 23/105] python3-roman-numerals-py-0:3 100% | 3.8 MiB/s | 19.3 KiB | 00m00s [ 24/105] python3-snowballstemmer-0:3.0 100% | 42.9 MiB/s | 263.3 KiB | 00m00s [ 25/105] python3-pygments-0:2.19.1-1.f 100% | 126.5 MiB/s | 2.4 MiB | 00m00s [ 26/105] python3-sphinx-theme-alabaste 100% | 5.9 MiB/s | 24.3 KiB | 00m00s [ 27/105] python3-charset-normalizer-0: 100% | 25.6 MiB/s | 104.8 KiB | 00m00s [ 28/105] python3-idna-0:3.10-2.fc42.no 100% | 27.3 MiB/s | 111.8 KiB | 00m00s [ 29/105] python3-urllib3-0:2.4.0-2.fc4 100% | 51.8 MiB/s | 265.4 KiB | 00m00s [ 30/105] python3-iniconfig-0:1.1.1-25. 100% | 4.4 MiB/s | 18.1 KiB | 00m00s [ 31/105] python3-pluggy-0:1.5.0-2.fc42 100% | 17.4 MiB/s | 53.4 KiB | 00m00s [ 32/105] python3-markupsafe-0:3.0.2-2. 100% | 7.3 MiB/s | 30.1 KiB | 00m00s [ 33/105] python3-boututils-0:0.2.1-8.f 100% | 8.5 MiB/s | 147.8 KiB | 00m00s [ 34/105] python3-matplotlib-0:3.10.3-6 100% | 186.7 MiB/s | 7.7 MiB | 00m00s [ 35/105] python3-natsort-0:8.4.0-3.fc4 100% | 1.9 MiB/s | 74.0 KiB | 00m00s [ 36/105] python3-numpy-1:2.2.6-1.fc43. 100% | 183.8 MiB/s | 7.9 MiB | 00m00s [ 37/105] python3-mpmath-0:1.3.0-12.fc4 100% | 40.5 MiB/s | 1.1 MiB | 00m00s [ 38/105] python3-scipy-0:1.14.1-3.fc42 100% | 186.2 MiB/s | 17.1 MiB | 00m00s [ 39/105] flexiblas-netlib-0:3.4.5-1.fc 100% | 58.4 MiB/s | 3.4 MiB | 00m00s [ 40/105] libgfortran-0:15.1.1-2.fc43.x 100% | 77.9 MiB/s | 957.2 KiB | 00m00s [ 41/105] python3-pooch-0:1.8.2-5.fc42. 100% | 24.5 MiB/s | 125.6 KiB | 00m00s [ 42/105] python3-numpy-f2py-1:2.2.6-1. 100% | 43.9 MiB/s | 450.0 KiB | 00m00s [ 43/105] python3-platformdirs-0:4.2.2- 100% | 5.0 MiB/s | 41.2 KiB | 00m00s [ 44/105] freetype-0:2.13.3-2.fc42.x86_ 100% | 40.6 MiB/s | 415.5 KiB | 00m00s [ 45/105] dejavu-sans-fonts-0:2.37-25.f 100% | 66.3 MiB/s | 1.3 MiB | 00m00s [ 46/105] libqhull_r-1:8.0.2-6.fc42.x86 100% | 28.3 MiB/s | 202.6 KiB | 00m00s [ 47/105] python3-cairo-0:1.25.1-6.fc43 100% | 12.4 MiB/s | 126.7 KiB | 00m00s [ 48/105] python3-cycler-0:0.11.0-15.fc 100% | 2.1 MiB/s | 21.5 KiB | 00m00s [ 49/105] python3-contourpy-0:1.3.2-1.f 100% | 14.1 MiB/s | 273.6 KiB | 00m00s [ 50/105] python3-dateutil-1:2.9.0.post 100% | 19.1 MiB/s | 331.9 KiB | 00m00s [ 51/105] python3-sympy-0:1.14.0-1.fc43 100% | 81.1 MiB/s | 15.1 MiB | 00m00s [ 52/105] python3-kiwisolver-0:1.4.8-2. 100% | 3.5 MiB/s | 68.7 KiB | 00m00s [ 53/105] python3-fonttools-0:4.58.1-1. 100% | 77.6 MiB/s | 3.0 MiB | 00m00s [ 54/105] python3-pyparsing-0:3.1.2-8.f 100% | 29.4 MiB/s | 271.0 KiB | 00m00s [ 55/105] python3-six-0:1.17.0-2.fc42.n 100% | 5.8 MiB/s | 41.3 KiB | 00m00s [ 56/105] python3-pillow-0:11.2.1-1.fc4 100% | 45.4 MiB/s | 976.9 KiB | 00m00s [ 57/105] python3-matplotlib-data-fonts 100% | 80.2 MiB/s | 2.3 MiB | 00m00s [ 58/105] harfbuzz-0:11.2.1-1.fc43.x86_ 100% | 106.4 MiB/s | 1.1 MiB | 00m00s [ 59/105] cairo-0:1.18.4-1.fc43.x86_64 100% | 44.5 MiB/s | 729.5 KiB | 00m00s [ 60/105] flexiblas-0:3.4.5-1.fc43.x86_ 100% | 8.5 MiB/s | 26.2 KiB | 00m00s [ 61/105] libpng-2:1.6.48-1.fc43.x86_64 100% | 17.2 MiB/s | 123.0 KiB | 00m00s [ 62/105] flexiblas-openblas-openmp-0:3 100% | 4.2 MiB/s | 17.3 KiB | 00m00s [ 63/105] libquadmath-0:15.1.1-2.fc43.x 100% | 38.7 MiB/s | 198.1 KiB | 00m00s [ 64/105] fonts-filesystem-1:2.0.5-22.f 100% | 2.8 MiB/s | 8.7 KiB | 00m00s [ 65/105] libX11-0:1.8.11-1.fc42.x86_64 100% | 53.3 MiB/s | 655.3 KiB | 00m00s [ 66/105] fontconfig-0:2.16.2-1.fc43.x8 100% | 18.0 MiB/s | 258.5 KiB | 00m00s [ 67/105] python3-netcdf4-0:1.7.2-3.fc4 100% | 15.2 MiB/s | 669.9 KiB | 00m00s [ 68/105] libXext-0:1.3.6-3.fc42.x86_64 100% | 9.6 MiB/s | 39.3 KiB | 00m00s [ 69/105] libXrender-0:0.9.12-2.fc42.x8 100% | 6.6 MiB/s | 26.9 KiB | 00m00s [ 70/105] lzo-0:2.10-14.fc42.x86_64 100% | 16.8 MiB/s | 69.0 KiB | 00m00s [ 71/105] libxcb-0:1.17.0-5.fc42.x86_64 100% | 32.7 MiB/s | 234.1 KiB | 00m00s [ 72/105] pixman-0:0.44.2-2.fc42.x86_64 100% | 45.2 MiB/s | 277.4 KiB | 00m00s [ 73/105] lcms2-0:2.16-5.fc42.x86_64 100% | 22.5 MiB/s | 184.1 KiB | 00m00s [ 74/105] libjpeg-turbo-0:3.1.0-2.fc42. 100% | 38.5 MiB/s | 236.2 KiB | 00m00s [ 75/105] libraqm-0:0.10.1-2.fc42.x86_6 100% | 4.4 MiB/s | 22.5 KiB | 00m00s [ 76/105] libimagequant-0:4.0.3-7.fc42. 100% | 23.9 MiB/s | 317.7 KiB | 00m00s [ 77/105] libtiff-0:4.7.0-3.fc42.x86_64 100% | 30.8 MiB/s | 220.4 KiB | 00m00s [ 78/105] libwebp-0:1.5.0-2.fc42.x86_64 100% | 34.8 MiB/s | 320.6 KiB | 00m00s [ 79/105] python3-olefile-0:0.47-6.fc42 100% | 9.1 MiB/s | 74.6 KiB | 00m00s [ 80/105] openjpeg-0:2.5.3-6.fc42.x86_6 100% | 17.1 MiB/s | 192.8 KiB | 00m00s [ 81/105] python3-certifi-0:2024.08.30- 100% | 2.3 MiB/s | 14.4 KiB | 00m00s [ 82/105] netcdf-0:4.9.2-13.fc43.x86_64 100% | 66.6 MiB/s | 819.0 KiB | 00m00s [ 83/105] blosc-0:1.21.6-6.fc42.x86_64 100% | 5.2 MiB/s | 58.4 KiB | 00m00s [ 84/105] python3-cftime-0:1.6.4-4.fc42 100% | 9.8 MiB/s | 229.9 KiB | 00m00s [ 85/105] libaec-0:1.1.3-2.fc42.x86_64 100% | 7.3 MiB/s | 37.3 KiB | 00m00s [ 86/105] libzip-0:1.11.4-1.fc43.x86_64 100% | 8.5 MiB/s | 69.9 KiB | 00m00s [ 87/105] libXau-0:1.0.12-2.fc42.x86_64 100% | 6.6 MiB/s | 33.6 KiB | 00m00s [ 88/105] hdf5-0:1.14.6-3.fc43.x86_64 100% | 83.4 MiB/s | 2.0 MiB | 00m00s [ 89/105] jbigkit-libs-0:2.1-31.fc42.x8 100% | 10.4 MiB/s | 53.3 KiB | 00m00s [ 90/105] python3-cython-0:3.0.12-1.fc4 100% | 84.4 MiB/s | 4.0 MiB | 00m00s [ 91/105] liblerc-0:4.0.0-8.fc42.x86_64 100% | 26.4 MiB/s | 216.7 KiB | 00m00s [ 92/105] fribidi-0:1.0.16-2.fc42.x86_6 100% | 6.5 MiB/s | 53.6 KiB | 00m00s [ 93/105] libX11-common-0:1.8.11-1.fc42 100% | 23.6 MiB/s | 145.1 KiB | 00m00s [ 94/105] graphite2-0:1.3.14-18.fc42.x8 100% | 10.4 MiB/s | 95.8 KiB | 00m00s [ 95/105] default-fonts-core-sans-0:4.2 100% | 2.7 MiB/s | 25.2 KiB | 00m00s [ 96/105] xml-common-0:0.6.3-66.fc42.no 100% | 4.4 MiB/s | 31.2 KiB | 00m00s [ 97/105] glib2-0:2.85.0-1.fc43.x86_64 100% | 132.5 MiB/s | 3.0 MiB | 00m00s [ 98/105] abattis-cantarell-vf-fonts-0: 100% | 16.8 MiB/s | 120.3 KiB | 00m00s [ 99/105] google-noto-sans-vf-fonts-0:2 100% | 85.7 MiB/s | 614.5 KiB | 00m00s [100/105] snappy-0:1.2.2-1.fc43.x86_64 100% | 7.8 MiB/s | 39.7 KiB | 00m00s [101/105] openblas-0:0.3.29-1.fc42.x86_ 100% | 8.3 MiB/s | 42.3 KiB | 00m00s [102/105] google-noto-fonts-common-0:20 100% | 2.1 MiB/s | 17.3 KiB | 00m00s [103/105] libtirpc-0:1.3.6-1.rc3.fc42.2 100% | 23.3 MiB/s | 95.5 KiB | 00m00s [104/105] hdf-libs-0:4.3.0-3.fc42.x86_6 100% | 28.7 MiB/s | 294.1 KiB | 00m00s [105/105] openblas-openmp-0:0.3.29-1.fc 100% | 109.6 MiB/s | 5.4 MiB | 00m00s -------------------------------------------------------------------------------- [105/105] Total 100% | 172.8 MiB/s | 103.0 MiB | 00m01s Running transaction [ 1/107] Verify package files 100% | 652.0 B/s | 105.0 B | 00m00s [ 2/107] Prepare transaction 100% | 1.0 KiB/s | 105.0 B | 00m00s [ 3/107] Installing fonts-filesystem-1 100% | 769.5 KiB/s | 788.0 B | 00m00s [ 4/107] Installing libgfortran-0:15.1 100% | 477.6 MiB/s | 3.3 MiB | 00m00s [ 5/107] Installing python-rpm-macros- 100% | 0.0 B/s | 22.8 KiB | 00m00s [ 6/107] Installing libaec-0:1.1.3-2.f 100% | 98.0 MiB/s | 100.3 KiB | 00m00s [ 7/107] Installing libjpeg-turbo-0:3. 100% | 393.0 MiB/s | 804.9 KiB | 00m00s [ 8/107] Installing python3-rpm-macros 100% | 0.0 B/s | 6.7 KiB | 00m00s [ 9/107] Installing libwebp-0:1.5.0-2. 100% | 309.8 MiB/s | 951.8 KiB | 00m00s [ 10/107] Installing libpng-2:1.6.48-1. 100% | 77.8 MiB/s | 239.0 KiB | 00m00s [ 11/107] Installing tzdata-0:2025b-1.f 100% | 67.6 MiB/s | 1.9 MiB | 00m00s [ 12/107] Installing pyproject-rpm-macr 100% | 113.7 MiB/s | 116.4 KiB | 00m00s [ 13/107] Installing hdf5-0:1.14.6-3.fc 100% | 214.0 MiB/s | 6.4 MiB | 00m00s [ 14/107] Installing dejavu-sans-fonts- 100% | 459.1 MiB/s | 5.5 MiB | 00m00s [ 15/107] Installing abattis-cantarell- 100% | 189.9 MiB/s | 194.4 KiB | 00m00s [ 16/107] Installing libtirpc-0:1.3.6-1 100% | 196.0 MiB/s | 200.7 KiB | 00m00s [ 17/107] Installing hdf-libs-0:4.3.0-3 100% | 336.1 MiB/s | 688.3 KiB | 00m00s [ 18/107] Installing google-noto-fonts- 100% | 0.0 B/s | 18.5 KiB | 00m00s [ 19/107] Installing google-noto-sans-v 100% | 347.8 MiB/s | 1.4 MiB | 00m00s [ 20/107] Installing default-fonts-core 100% | 17.8 MiB/s | 18.2 KiB | 00m00s [ 21/107] Installing openblas-0:0.3.29- 100% | 0.0 B/s | 113.5 KiB | 00m00s [ 22/107] Installing openblas-openmp-0: 100% | 652.5 MiB/s | 43.7 MiB | 00m00s [ 23/107] Installing snappy-0:1.2.2-1.f 100% | 71.8 MiB/s | 73.5 KiB | 00m00s [ 24/107] Installing blosc-0:1.21.6-6.f 100% | 25.2 MiB/s | 129.0 KiB | 00m00s [ 25/107] Installing xml-common-0:0.6.3 100% | 79.2 MiB/s | 81.1 KiB | 00m00s [ 26/107] Installing graphite2-0:1.3.14 100% | 14.9 MiB/s | 197.9 KiB | 00m00s [ 27/107] Installing glib2-0:2.85.0-1.f 100% | 306.7 MiB/s | 14.7 MiB | 00m00s [ 28/107] Installing freetype-0:2.13.3- 100% | 279.9 MiB/s | 859.9 KiB | 00m00s [ 29/107] Installing harfbuzz-0:11.2.1- 100% | 349.3 MiB/s | 2.8 MiB | 00m00s [ 30/107] Installing fontconfig-0:2.16. 100% | 753.7 KiB/s | 780.1 KiB | 00m01s [ 31/107] Installing libX11-common-0:1. 100% | 148.5 MiB/s | 1.2 MiB | 00m00s [ 32/107] Installing fribidi-0:1.0.16-2 100% | 16.0 MiB/s | 196.8 KiB | 00m00s [ 33/107] Installing libraqm-0:0.10.1-2 100% | 0.0 B/s | 29.7 KiB | 00m00s [ 34/107] Installing liblerc-0:4.0.0-8. 100% | 311.3 MiB/s | 637.6 KiB | 00m00s [ 35/107] Installing jbigkit-libs-0:2.1 100% | 120.5 MiB/s | 123.4 KiB | 00m00s [ 36/107] Installing libtiff-0:4.7.0-3. 100% | 303.4 MiB/s | 621.3 KiB | 00m00s [ 37/107] Installing libXau-0:1.0.12-2. 100% | 76.6 MiB/s | 78.5 KiB | 00m00s [ 38/107] Installing libxcb-0:1.17.0-5. 100% | 270.1 MiB/s | 1.1 MiB | 00m00s [ 39/107] Installing libX11-0:1.8.11-1. 100% | 321.4 MiB/s | 1.3 MiB | 00m00s [ 40/107] Installing libXext-0:1.3.6-3. 100% | 0.0 B/s | 91.2 KiB | 00m00s [ 41/107] Installing libXrender-0:0.9.1 100% | 0.0 B/s | 51.3 KiB | 00m00s [ 42/107] Installing libzip-0:1.11.4-1. 100% | 133.7 MiB/s | 136.9 KiB | 00m00s [ 43/107] Installing netcdf-0:4.9.2-13. 100% | 130.6 MiB/s | 2.4 MiB | 00m00s [ 44/107] Installing openjpeg-0:2.5.3-6 100% | 221.6 MiB/s | 453.8 KiB | 00m00s [ 45/107] Installing libimagequant-0:4. 100% | 344.7 MiB/s | 705.9 KiB | 00m00s [ 46/107] Installing lcms2-0:2.16-5.fc4 100% | 214.5 MiB/s | 439.3 KiB | 00m00s [ 47/107] Installing pixman-0:0.44.2-2. 100% | 329.7 MiB/s | 675.3 KiB | 00m00s [ 48/107] Installing lzo-0:2.10-14.fc42 100% | 168.5 MiB/s | 172.5 KiB | 00m00s [ 49/107] Installing cairo-0:1.18.4-1.f 100% | 354.4 MiB/s | 1.8 MiB | 00m00s [ 50/107] Installing libquadmath-0:15.1 100% | 311.7 MiB/s | 319.2 KiB | 00m00s [ 51/107] Installing flexiblas-netlib-0 100% | 287.8 MiB/s | 10.9 MiB | 00m00s [ 52/107] Installing flexiblas-0:3.4.5- 100% | 0.0 B/s | 51.6 KiB | 00m00s [ 53/107] Installing flexiblas-openblas 100% | 0.0 B/s | 40.1 KiB | 00m00s [ 54/107] Installing python-pip-wheel-0 100% | 622.5 MiB/s | 1.2 MiB | 00m00s [ 55/107] Installing mpdecimal-0:4.0.1- 100% | 213.7 MiB/s | 218.8 KiB | 00m00s [ 56/107] Installing libb2-0:0.98.1-13. 100% | 0.0 B/s | 47.2 KiB | 00m00s [ 57/107] Installing expat-0:2.7.1-1.fc 100% | 19.3 MiB/s | 296.3 KiB | 00m00s [ 58/107] Installing python3-libs-0:3.1 100% | 341.5 MiB/s | 40.3 MiB | 00m00s [ 59/107] Installing python3-0:3.13.3-3 100% | 2.5 MiB/s | 30.4 KiB | 00m00s [ 60/107] Installing python3-numpy-f2py 100% | 94.1 MiB/s | 2.1 MiB | 00m00s [ 61/107] Installing python3-numpy-1:2. 100% | 352.7 MiB/s | 40.6 MiB | 00m00s [ 62/107] Installing python3-packaging- 100% | 187.5 MiB/s | 575.9 KiB | 00m00s [ 63/107] Installing python3-idna-0:3.1 100% | 309.7 MiB/s | 634.3 KiB | 00m00s [ 64/107] Installing python3-urllib3-0: 100% | 255.3 MiB/s | 1.0 MiB | 00m00s [ 65/107] Installing python3-rpm-genera 100% | 81.0 MiB/s | 82.9 KiB | 00m00s [ 66/107] Installing python3-contourpy- 100% | 277.2 MiB/s | 851.6 KiB | 00m00s [ 67/107] Installing python3-cftime-0:1 100% | 154.3 MiB/s | 632.1 KiB | 00m00s [ 68/107] Installing python3-babel-0:2. 100% | 345.5 MiB/s | 30.4 MiB | 00m00s [ 69/107] Installing python3-docutils-0 100% | 172.1 MiB/s | 5.0 MiB | 00m00s [ 70/107] Installing python3-imagesize- 100% | 18.7 MiB/s | 38.3 KiB | 00m00s [ 71/107] Installing python3-pygments-0 100% | 229.9 MiB/s | 11.0 MiB | 00m00s [ 72/107] Installing python3-roman-nume 100% | 40.7 MiB/s | 41.6 KiB | 00m00s [ 73/107] Installing python3-snowballst 100% | 367.6 MiB/s | 1.8 MiB | 00m00s [ 74/107] Installing python3-sphinx-the 100% | 45.3 MiB/s | 46.4 KiB | 00m00s [ 75/107] Installing python3-charset-no 100% | 25.6 MiB/s | 340.2 KiB | 00m00s [ 76/107] Installing python3-requests-0 100% | 242.0 MiB/s | 495.7 KiB | 00m00s [ 77/107] Installing python3-iniconfig- 100% | 23.0 MiB/s | 23.5 KiB | 00m00s [ 78/107] Installing python3-pluggy-0:1 100% | 194.3 MiB/s | 199.0 KiB | 00m00s [ 79/107] Installing python3-markupsafe 100% | 58.5 MiB/s | 59.9 KiB | 00m00s [ 80/107] Installing python3-jinja2-0:3 100% | 323.7 MiB/s | 2.9 MiB | 00m00s [ 81/107] Installing python3-sphinx-1:8 100% | 203.7 MiB/s | 11.6 MiB | 00m00s [ 82/107] Installing python3-natsort-0: 100% | 19.6 MiB/s | 261.5 KiB | 00m00s [ 83/107] Installing python3-mpmath-0:1 100% | 246.8 MiB/s | 5.2 MiB | 00m00s [ 84/107] Installing python3-sympy-0:1. 100% | 324.6 MiB/s | 80.2 MiB | 00m00s [ 85/107] Installing python3-platformdi 100% | 82.2 MiB/s | 168.4 KiB | 00m00s [ 86/107] Installing python3-pooch-0:1. 100% | 88.7 MiB/s | 635.8 KiB | 00m00s [ 87/107] Installing python3-scipy-0:1. 100% | 395.1 MiB/s | 67.6 MiB | 00m00s [ 88/107] Installing python3-cairo-0:1. 100% | 244.7 MiB/s | 501.2 KiB | 00m00s [ 89/107] Installing python3-cycler-0:0 100% | 19.3 MiB/s | 39.5 KiB | 00m00s [ 90/107] Installing python3-fonttools- 100% | 362.8 MiB/s | 18.5 MiB | 00m00s [ 91/107] Installing python3-kiwisolver 100% | 150.0 MiB/s | 153.6 KiB | 00m00s [ 92/107] Installing python3-pyparsing- 100% | 327.1 MiB/s | 1.0 MiB | 00m00s [ 93/107] Installing python3-six-0:1.17 100% | 116.2 MiB/s | 119.0 KiB | 00m00s [ 94/107] Installing python3-dateutil-1 100% | 284.2 MiB/s | 872.9 KiB | 00m00s [ 95/107] Installing python3-olefile-0: 100% | 167.3 MiB/s | 342.7 KiB | 00m00s [ 96/107] Installing python3-pillow-0:1 100% | 311.7 MiB/s | 4.1 MiB | 00m00s [ 97/107] Installing python3-certifi-0: 100% | 5.1 MiB/s | 10.4 KiB | 00m00s [ 98/107] Installing python3-cython-0:3 100% | 300.0 MiB/s | 18.6 MiB | 00m00s [ 99/107] Installing python3-netcdf4-0: 100% | 401.5 MiB/s | 2.4 MiB | 00m00s [100/107] Installing python3-matplotlib 100% | 416.5 MiB/s | 7.9 MiB | 00m00s [101/107] Installing libqhull_r-1:8.0.2 100% | 157.6 MiB/s | 484.1 KiB | 00m00s [102/107] Installing python3-matplotlib 100% | 433.8 MiB/s | 31.2 MiB | 00m00s [103/107] Installing python3-boututils- 100% | 148.8 MiB/s | 457.0 KiB | 00m00s [104/107] Installing python3-boutdata-0 100% | 38.9 MiB/s | 557.0 KiB | 00m00s [105/107] Installing python3-sphinx-aut 100% | 60.3 MiB/s | 123.6 KiB | 00m00s [106/107] Installing python3-pytest-0:8 100% | 377.0 MiB/s | 21.1 MiB | 00m00s [107/107] Installing python3-devel-0:3. 100% | 17.2 MiB/s | 1.8 MiB | 00m00s Warning: skipped OpenPGP checks for 105 packages from repository: http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Finish: build setup for python-xbout-0.3.6-5.fc43.src.rpm Start: rpmbuild python-xbout-0.3.6-5.fc43.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.8p55mV Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.GXXThM + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + cd /builddir/build/BUILD/python-xbout-0.3.6-build + rm -rf xbout-0.3.6 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/xbout-0.3.6.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd xbout-0.3.6 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/xarray-version.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/sphinx-theme.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/fix-dirs.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + rm -rf xbout.egg-info + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.XHfsVI + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + cd xbout-0.3.6 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + RPM_TOXENV=py313 + FEDORA=43 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-xbout-0.3.6-build/pyproject-wheeldir --output /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires -r Handling setuptools >= 65 from build-system.requires Requirement not satisfied: setuptools >= 65 Handling setuptools_scm[toml] >= 7 from build-system.requires Requirement not satisfied: setuptools_scm[toml] >= 7 Handling wheel >= 0.29.0 from build-system.requires Requirement not satisfied: wheel >= 0.29.0 Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-xbout-0.3.6-5.fc43.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: fedora 100% | 27.9 KiB/s | 9.1 KiB | 00m00s Copr repository 100% | 84.4 KiB/s | 1.5 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 166.5 KiB/s | 3.8 KiB | 00m00s Repositories loaded. Package "pyproject-rpm-macros-1.18.1-1.fc43.noarch" is already installed. Package "python3-boutdata-0.2.1-8.fc42.noarch" is already installed. Package "python3-devel-3.13.3-3.fc43.x86_64" is already installed. Package "python3-sphinx-autodoc-typehints-3.1.0-1.fc43.noarch" is already installed. Package "python3-packaging-25.0-1.fc43.noarch" is already installed. Package "python3-pytest-8.3.5-2.fc43.noarch" is already installed. Package "python3-sphinx-1:8.2.3-5.fc43.noarch" is already installed. Package Arch Version Repository Size Installing: python3-pip noarch 25.1.1-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.6 MiB python3-setuptools noarch 78.1.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.6 MiB python3-setuptools_scm noarch 8.3.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 320.3 KiB python3-setuptools_scm+toml noarch 8.3.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 9.8 KiB python3-wheel noarch 1:0.45.1-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 540.8 KiB Transaction Summary: Installing: 5 packages Total size of inbound packages is 5 MiB. Need to download 2 MiB. After this operation, 21 MiB extra will be used (install 21 MiB, remove 0 B). [1/5] python3-pip-0:25.1.1-3.fc43.noarc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [2/5] python3-setuptools_scm+toml-0:8.3 100% | 496.7 KiB/s | 9.9 KiB | 00m00s [3/5] python3-wheel-1:0.45.1-13.fc43.no 100% | 17.3 MiB/s | 159.6 KiB | 00m00s [4/5] python3-setuptools_scm-0:8.3.1-1. 100% | 2.7 MiB/s | 102.1 KiB | 00m00s [5/5] python3-setuptools-0:78.1.1-1.fc4 100% | 24.6 MiB/s | 1.8 MiB | 00m00s -------------------------------------------------------------------------------- [5/5] Total 100% | 27.1 MiB/s | 2.1 MiB | 00m00s Running transaction [1/7] Verify package files 100% | 833.0 B/s | 5.0 B | 00m00s [2/7] Prepare transaction 100% | 178.0 B/s | 5.0 B | 00m00s [3/7] Installing python3-setuptools-0:7 100% | 219.1 MiB/s | 8.8 MiB | 00m00s [4/7] Installing python3-setuptools_scm 100% | 110.8 MiB/s | 340.3 KiB | 00m00s [5/7] Installing python3-setuptools_scm 100% | 0.0 B/s | 124.0 B | 00m00s [6/7] Installing python3-wheel-1:0.45.1 100% | 34.2 MiB/s | 560.8 KiB | 00m00s [7/7] Installing python3-pip-0:25.1.1-3 100% | 146.0 MiB/s | 11.8 MiB | 00m00s Warning: skipped OpenPGP checks for 5 packages from repository: http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.qr7UVz + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + cd xbout-0.3.6 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + RPM_TOXENV=py313 + FEDORA=43 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-xbout-0.3.6-build/pyproject-wheeldir --output /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires -r Handling setuptools >= 65 from build-system.requires Requirement satisfied: setuptools >= 65 (installed: setuptools 78.1.1) Handling setuptools_scm[toml] >= 7 from build-system.requires Requirement satisfied: setuptools_scm[toml] >= 7 (installed: setuptools_scm 8.3.1) (extras are currently not checked) Handling wheel >= 0.29.0 from build-system.requires Requirement satisfied: wheel >= 0.29.0 (installed: wheel 0.45.1) /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info creating xbout.egg-info writing xbout.egg-info/PKG-INFO writing dependency_links to xbout.egg-info/dependency_links.txt writing requirements to xbout.egg-info/requires.txt writing top-level names to xbout.egg-info/top_level.txt writing manifest file 'xbout.egg-info/SOURCES.txt' WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file 'xbout.egg-info/SOURCES.txt' /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info writing xbout.egg-info/PKG-INFO writing dependency_links to xbout.egg-info/dependency_links.txt writing requirements to xbout.egg-info/requires.txt writing top-level names to xbout.egg-info/top_level.txt WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file 'xbout.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout-0.3.6.dist-info' Handling xarray>=0.18.0 from hook generated metadata: Requires-Dist (xbout) Requirement not satisfied: xarray>=0.18.0 Handling boutdata>=0.1.4 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: boutdata>=0.1.4 (installed: boutdata 0.2.1) Handling dask[array]>=2.10.0 from hook generated metadata: Requires-Dist (xbout) Requirement not satisfied: dask[array]>=2.10.0 Handling gelidum>=0.5.3 from hook generated metadata: Requires-Dist (xbout) Requirement not satisfied: gelidum>=0.5.3 Handling natsort>=5.5.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: natsort>=5.5.0 (installed: natsort 8.4.0) Handling matplotlib!=3.3.0,!=3.3.1,!=3.3.2,>=3.1.1 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: matplotlib!=3.3.0,!=3.3.1,!=3.3.2,>=3.1.1 (installed: matplotlib 3.10.3) Handling animatplot-ng>=0.4.2 from hook generated metadata: Requires-Dist (xbout) Requirement not satisfied: animatplot-ng>=0.4.2 Handling netcdf4>=1.4.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: netcdf4>=1.4.0 (installed: netcdf4 1.7.2) Handling Pillow>=6.1.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: Pillow>=6.1.0 (installed: Pillow 11.2.1) Handling numpy>=1.18.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: numpy>=1.18.0; extra == "calc" Handling scipy>=1.3.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: scipy>=1.3.0; extra == "calc" Handling dask>=2.2.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: dask>=2.2.0; extra == "calc" Handling statsmodels>=0.10.1; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: statsmodels>=0.10.1; extra == "calc" Handling xrft; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: xrft; extra == "calc" Handling xhistogram; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: xhistogram; extra == "calc" Handling sphinx>=5.3; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx>=5.3; extra == "docs" Handling sphinx-book-theme>=0.4.0rc1; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx-book-theme>=0.4.0rc1; extra == "docs" Handling sphinx_autodoc_typehints>=1.19; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx_autodoc_typehints>=1.19; extra == "docs" Handling k3d>=2.8.0; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: k3d>=2.8.0; extra == "3d-plot" Handling mayavi>=4.7.2; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: mayavi>=4.7.2; extra == "3d-plot" Handling wand; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: wand; extra == "3d-plot" Handling pytest>=3.3.0; extra == "tests" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: pytest>=3.3.0; extra == "tests" Handling pytest-cov; extra == "tests" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: pytest-cov; extra == "tests" + cat /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires + rm -rfv xbout-0.3.6.dist-info/ removed 'xbout-0.3.6.dist-info/licenses/LICENSE' removed directory 'xbout-0.3.6.dist-info/licenses' removed 'xbout-0.3.6.dist-info/METADATA' removed 'xbout-0.3.6.dist-info/top_level.txt' removed directory 'xbout-0.3.6.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-xbout-0.3.6-5.fc43.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: fedora 100% | 27.9 KiB/s | 9.1 KiB | 00m00s Copr repository 100% | 101.3 KiB/s | 1.5 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 174.0 KiB/s | 3.8 KiB | 00m00s Repositories loaded. Package "pyproject-rpm-macros-1.18.1-1.fc43.noarch" is already installed. Package "python3-boutdata-0.2.1-8.fc42.noarch" is already installed. Package "python3-devel-3.13.3-3.fc43.x86_64" is already installed. Package "python3-sphinx-autodoc-typehints-3.1.0-1.fc43.noarch" is already installed. Package "python3-boutdata-0.2.1-8.fc42.noarch" is already installed. Package "python3-natsort-8.4.0-3.fc42.noarch" is already installed. Package "python3-netcdf4-1.7.2-3.fc42.x86_64" is already installed. Package "python3-packaging-25.0-1.fc43.noarch" is already installed. Package "python3-pillow-11.2.1-1.fc43.x86_64" is already installed. Package "python3-pip-25.1.1-3.fc43.noarch" is already installed. Package "python3-pytest-8.3.5-2.fc43.noarch" is already installed. Package "python3-setuptools-78.1.1-1.fc43.noarch" is already installed. Package "python3-setuptools_scm-8.3.1-1.fc43.noarch" is already installed. Package "python3-setuptools_scm+toml-8.3.1-1.fc43.noarch" is already installed. Package "python3-sphinx-1:8.2.3-5.fc43.noarch" is already installed. Package "python3-wheel-1:0.45.1-13.fc43.noarch" is already installed. Package Arch Version Repository Size Installing: python3-animatplot noarch 0.4.4-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 113.8 KiB python3-dask noarch 2025.4.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 19.8 MiB python3-dask+array noarch 2025.4.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.8 KiB python3-gelidum noarch 0.7.0-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 111.5 KiB python3-xarray noarch 2025.4.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 18.6 MiB Installing dependencies: libyaml x86_64 0.2.5-16.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 134.7 KiB python3-click noarch 8.1.7-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB python3-cloudpickle noarch 3.1.1-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 128.1 KiB python3-fsspec noarch 2025.5.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB python3-locket noarch 1.0.0-12.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 20.6 KiB python3-pandas x86_64 2.2.3-1.fc42~bootstrap http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 42.2 MiB python3-partd noarch 1.4.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 163.3 KiB python3-pytz noarch 2025.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 204.7 KiB python3-pyyaml x86_64 6.0.2-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 781.0 KiB python3-toolz noarch 1.0.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 605.8 KiB Transaction Summary: Installing: 15 packages Total size of inbound packages is 16 MiB. Need to download 16 MiB. After this operation, 86 MiB extra will be used (install 86 MiB, remove 0 B). [ 1/15] python3-animatplot-0:0.4.4-3.fc 100% | 1.4 MiB/s | 47.0 KiB | 00m00s [ 2/15] python3-dask+array-0:2025.4.1-1 100% | 333.1 KiB/s | 12.7 KiB | 00m00s [ 3/15] python3-gelidum-0:0.7.0-6.fc42. 100% | 4.9 MiB/s | 45.5 KiB | 00m00s [ 4/15] python3-xarray-0:2025.4.0-1.fc4 100% | 50.7 MiB/s | 2.9 MiB | 00m00s [ 5/15] python3-pandas-0:2.2.3-1.fc42~b 100% | 124.1 MiB/s | 7.8 MiB | 00m00s [ 6/15] python3-pytz-0:2025.2-1.fc43.no 100% | 4.7 MiB/s | 57.3 KiB | 00m00s [ 7/15] python3-click-0:8.1.7-7.fc42.no 100% | 32.5 MiB/s | 232.6 KiB | 00m00s [ 8/15] python3-fsspec-0:2025.5.1-1.fc4 100% | 59.5 MiB/s | 426.6 KiB | 00m00s [ 9/15] python3-cloudpickle-0:3.1.1-3.f 100% | 2.4 MiB/s | 47.6 KiB | 00m00s [10/15] python3-partd-0:1.4.2-3.fc42.no 100% | 6.7 MiB/s | 54.7 KiB | 00m00s [11/15] python3-pyyaml-0:6.0.2-2.fc42.x 100% | 35.7 MiB/s | 219.4 KiB | 00m00s [12/15] libyaml-0:0.2.5-16.fc42.x86_64 100% | 11.9 MiB/s | 60.7 KiB | 00m00s [13/15] python3-toolz-0:1.0.0-2.fc42.no 100% | 16.9 MiB/s | 156.2 KiB | 00m00s [14/15] python3-dask-0:2025.4.1-1.fc43. 100% | 21.7 MiB/s | 3.5 MiB | 00m00s [15/15] python3-locket-0:1.0.0-12.fc42. 100% | 660.3 KiB/s | 17.8 KiB | 00m00s -------------------------------------------------------------------------------- [15/15] Total 100% | 91.9 MiB/s | 15.5 MiB | 00m00s Running transaction [ 1/17] Verify package files 100% | 681.0 B/s | 15.0 B | 00m00s [ 2/17] Prepare transaction 100% | 365.0 B/s | 15.0 B | 00m00s [ 3/17] Installing python3-toolz-0:1.0. 100% | 152.6 MiB/s | 625.1 KiB | 00m00s [ 4/17] Installing python3-locket-0:1.0 100% | 0.0 B/s | 23.0 KiB | 00m00s [ 5/17] Installing python3-partd-0:1.4. 100% | 168.5 MiB/s | 172.6 KiB | 00m00s [ 6/17] Installing libyaml-0:0.2.5-16.f 100% | 132.9 MiB/s | 136.0 KiB | 00m00s [ 7/17] Installing python3-pyyaml-0:6.0 100% | 258.7 MiB/s | 794.8 KiB | 00m00s [ 8/17] Installing python3-fsspec-0:202 100% | 266.9 MiB/s | 1.9 MiB | 00m00s [ 9/17] Installing python3-cloudpickle- 100% | 128.8 MiB/s | 131.9 KiB | 00m00s [10/17] Installing python3-click-0:8.1. 100% | 264.8 MiB/s | 1.1 MiB | 00m00s [11/17] Installing python3-dask-0:2025. 100% | 270.0 MiB/s | 20.0 MiB | 00m00s [12/17] Installing python3-pytz-0:2025. 100% | 68.3 MiB/s | 209.9 KiB | 00m00s [13/17] Installing python3-pandas-0:2.2 100% | 404.2 MiB/s | 42.4 MiB | 00m00s [14/17] Installing python3-xarray-0:202 100% | 399.0 MiB/s | 18.8 MiB | 00m00s [15/17] Installing python3-dask+array-0 100% | 0.0 B/s | 124.0 B | 00m00s [16/17] Installing python3-gelidum-0:0. 100% | 60.2 MiB/s | 123.3 KiB | 00m00s [17/17] Installing python3-animatplot-0 100% | 6.1 MiB/s | 125.3 KiB | 00m00s Warning: skipped OpenPGP checks for 15 packages from repository: http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.KvQrwH + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + cd xbout-0.3.6 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + RPM_TOXENV=py313 + FEDORA=43 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-xbout-0.3.6-build/pyproject-wheeldir --output /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires -r Handling setuptools >= 65 from build-system.requires Requirement satisfied: setuptools >= 65 (installed: setuptools 78.1.1) Handling setuptools_scm[toml] >= 7 from build-system.requires Requirement satisfied: setuptools_scm[toml] >= 7 (installed: setuptools_scm 8.3.1) (extras are currently not checked) Handling wheel >= 0.29.0 from build-system.requires Requirement satisfied: wheel >= 0.29.0 (installed: wheel 0.45.1) /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info writing xbout.egg-info/PKG-INFO writing dependency_links to xbout.egg-info/dependency_links.txt writing requirements to xbout.egg-info/requires.txt writing top-level names to xbout.egg-info/top_level.txt WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file 'xbout.egg-info/SOURCES.txt' /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info writing xbout.egg-info/PKG-INFO writing dependency_links to xbout.egg-info/dependency_links.txt writing requirements to xbout.egg-info/requires.txt writing top-level names to xbout.egg-info/top_level.txt WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file 'xbout.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout-0.3.6.dist-info' Handling xarray>=0.18.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: xarray>=0.18.0 (installed: xarray 2025.4.0) Handling boutdata>=0.1.4 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: boutdata>=0.1.4 (installed: boutdata 0.2.1) Handling dask[array]>=2.10.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: dask[array]>=2.10.0 (installed: dask 2025.4.1) (extras are currently not checked) Handling gelidum>=0.5.3 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: gelidum>=0.5.3 (installed: gelidum 0.7.0) Handling natsort>=5.5.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: natsort>=5.5.0 (installed: natsort 8.4.0) Handling matplotlib!=3.3.0,!=3.3.1,!=3.3.2,>=3.1.1 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: matplotlib!=3.3.0,!=3.3.1,!=3.3.2,>=3.1.1 (installed: matplotlib 3.10.3) Handling animatplot-ng>=0.4.2 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: animatplot-ng>=0.4.2 (installed: animatplot-ng 0.4.4) Handling netcdf4>=1.4.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: netcdf4>=1.4.0 (installed: netcdf4 1.7.2) Handling Pillow>=6.1.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: Pillow>=6.1.0 (installed: Pillow 11.2.1) Handling numpy>=1.18.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: numpy>=1.18.0; extra == "calc" Handling scipy>=1.3.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: scipy>=1.3.0; extra == "calc" Handling dask>=2.2.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: dask>=2.2.0; extra == "calc" Handling statsmodels>=0.10.1; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: statsmodels>=0.10.1; extra == "calc" Handling xrft; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: xrft; extra == "calc" Handling xhistogram; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: xhistogram; extra == "calc" Handling sphinx>=5.3; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx>=5.3; extra == "docs" Handling sphinx-book-theme>=0.4.0rc1; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx-book-theme>=0.4.0rc1; extra == "docs" Handling sphinx_autodoc_typehints>=1.19; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx_autodoc_typehints>=1.19; extra == "docs" Handling k3d>=2.8.0; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: k3d>=2.8.0; extra == "3d-plot" Handling mayavi>=4.7.2; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: mayavi>=4.7.2; extra == "3d-plot" Handling wand; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: wand; extra == "3d-plot" Handling pytest>=3.3.0; extra == "tests" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: pytest>=3.3.0; extra == "tests" Handling pytest-cov; extra == "tests" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: pytest-cov; extra == "tests" + cat /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires + rm -rfv xbout-0.3.6.dist-info/ removed 'xbout-0.3.6.dist-info/licenses/LICENSE' removed directory 'xbout-0.3.6.dist-info/licenses' removed 'xbout-0.3.6.dist-info/METADATA' removed 'xbout-0.3.6.dist-info/top_level.txt' removed directory 'xbout-0.3.6.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-xbout-0.3.6-5.fc43.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: fedora 100% | 62.4 KiB/s | 9.1 KiB | 00m00s Copr repository 100% | 84.4 KiB/s | 1.5 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 153.2 KiB/s | 3.8 KiB | 00m00s Copr repository 100% | 417.4 KiB/s | 10.9 KiB | 00m00s Repositories loaded. Nothing to do. Package "pyproject-rpm-macros-1.18.1-1.fc43.noarch" is already installed. Package "python3-boutdata-0.2.1-8.fc42.noarch" is already installed. Package "python3-devel-3.13.3-3.fc43.x86_64" is already installed. Package "python3-sphinx-autodoc-typehints-3.1.0-1.fc43.noarch" is already installed. Package "python3-animatplot-0.4.4-3.fc42.noarch" is already installed. Package "python3-boutdata-0.2.1-8.fc42.noarch" is already installed. Package "python3-dask-2025.4.1-1.fc43.noarch" is already installed. Package "python3-dask+array-2025.4.1-1.fc43.noarch" is already installed. Package "python3-gelidum-0.7.0-6.fc42.noarch" is already installed. Package "python3-natsort-8.4.0-3.fc42.noarch" is already installed. Package "python3-netcdf4-1.7.2-3.fc42.x86_64" is already installed. Package "python3-packaging-25.0-1.fc43.noarch" is already installed. Package "python3-pillow-11.2.1-1.fc43.x86_64" is already installed. Package "python3-pip-25.1.1-3.fc43.noarch" is already installed. Package "python3-pytest-8.3.5-2.fc43.noarch" is already installed. Package "python3-setuptools-78.1.1-1.fc43.noarch" is already installed. Package "python3-setuptools_scm-8.3.1-1.fc43.noarch" is already installed. Package "python3-setuptools_scm+toml-8.3.1-1.fc43.noarch" is already installed. Package "python3-sphinx-1:8.2.3-5.fc43.noarch" is already installed. Package "python3-wheel-1:0.45.1-13.fc43.noarch" is already installed. Package "python3-xarray-2025.4.0-1.fc43.noarch" is already installed. Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.Pg7QtF + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + cd xbout-0.3.6 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-xbout-0.3.6-build/.pyproject-builddir + RPM_TOXENV=py313 + FEDORA=43 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-xbout-0.3.6-build/pyproject-wheeldir --output /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires -r Handling setuptools >= 65 from build-system.requires Requirement satisfied: setuptools >= 65 (installed: setuptools 78.1.1) Handling setuptools_scm[toml] >= 7 from build-system.requires Requirement satisfied: setuptools_scm[toml] >= 7 (installed: setuptools_scm 8.3.1) (extras are currently not checked) Handling wheel >= 0.29.0 from build-system.requires Requirement satisfied: wheel >= 0.29.0 (installed: wheel 0.45.1) /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info writing xbout.egg-info/PKG-INFO writing dependency_links to xbout.egg-info/dependency_links.txt writing requirements to xbout.egg-info/requires.txt writing top-level names to xbout.egg-info/top_level.txt WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file 'xbout.egg-info/SOURCES.txt' /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info writing xbout.egg-info/PKG-INFO writing dependency_links to xbout.egg-info/dependency_links.txt writing requirements to xbout.egg-info/requires.txt writing top-level names to xbout.egg-info/top_level.txt WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file 'xbout.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout-0.3.6.dist-info' Handling xarray>=0.18.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: xarray>=0.18.0 (installed: xarray 2025.4.0) Handling boutdata>=0.1.4 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: boutdata>=0.1.4 (installed: boutdata 0.2.1) Handling dask[array]>=2.10.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: dask[array]>=2.10.0 (installed: dask 2025.4.1) (extras are currently not checked) Handling gelidum>=0.5.3 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: gelidum>=0.5.3 (installed: gelidum 0.7.0) Handling natsort>=5.5.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: natsort>=5.5.0 (installed: natsort 8.4.0) Handling matplotlib!=3.3.0,!=3.3.1,!=3.3.2,>=3.1.1 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: matplotlib!=3.3.0,!=3.3.1,!=3.3.2,>=3.1.1 (installed: matplotlib 3.10.3) Handling animatplot-ng>=0.4.2 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: animatplot-ng>=0.4.2 (installed: animatplot-ng 0.4.4) Handling netcdf4>=1.4.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: netcdf4>=1.4.0 (installed: netcdf4 1.7.2) Handling Pillow>=6.1.0 from hook generated metadata: Requires-Dist (xbout) Requirement satisfied: Pillow>=6.1.0 (installed: Pillow 11.2.1) Handling numpy>=1.18.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: numpy>=1.18.0; extra == "calc" Handling scipy>=1.3.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: scipy>=1.3.0; extra == "calc" Handling dask>=2.2.0; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: dask>=2.2.0; extra == "calc" Handling statsmodels>=0.10.1; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: statsmodels>=0.10.1; extra == "calc" Handling xrft; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: xrft; extra == "calc" Handling xhistogram; extra == "calc" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: xhistogram; extra == "calc" Handling sphinx>=5.3; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx>=5.3; extra == "docs" Handling sphinx-book-theme>=0.4.0rc1; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx-book-theme>=0.4.0rc1; extra == "docs" Handling sphinx_autodoc_typehints>=1.19; extra == "docs" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: sphinx_autodoc_typehints>=1.19; extra == "docs" Handling k3d>=2.8.0; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: k3d>=2.8.0; extra == "3d-plot" Handling mayavi>=4.7.2; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: mayavi>=4.7.2; extra == "3d-plot" Handling wand; extra == "3d-plot" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: wand; extra == "3d-plot" Handling pytest>=3.3.0; extra == "tests" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: pytest>=3.3.0; extra == "tests" Handling pytest-cov; extra == "tests" from hook generated metadata: Requires-Dist (xbout) Ignoring alien requirement: pytest-cov; extra == "tests" + cat /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-buildrequires + rm -rfv xbout-0.3.6.dist-info/ removed 'xbout-0.3.6.dist-info/licenses/LICENSE' removed directory 'xbout-0.3.6.dist-info/licenses' removed 'xbout-0.3.6.dist-info/METADATA' removed 'xbout-0.3.6.dist-info/top_level.txt' removed directory 'xbout-0.3.6.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.mDIfjI + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd xbout-0.3.6 + mkdir -p /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/pyproject-wheeldir Processing /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info creating /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout.egg-info writing /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout.egg-info/SOURCES.txt' WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-modern-metadata-ekdtrjfo/xbout-0.3.6.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: xbout Building wheel for xbout (pyproject.toml): started Running command Building wheel for xbout (pyproject.toml) /usr/lib/python3.13/site-packages/setuptools_scm/git.py:310: UserWarning: git archive did not support describe output warnings.warn("git archive did not support describe output") /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel running build running build_py creating build/lib/xbout copying xbout/utils.py -> build/lib/xbout copying xbout/region.py -> build/lib/xbout copying xbout/load.py -> build/lib/xbout copying xbout/geometries.py -> build/lib/xbout copying xbout/fastoutput.py -> build/lib/xbout copying xbout/conftest.py -> build/lib/xbout copying xbout/boutdataset.py -> build/lib/xbout copying xbout/boutdataarray.py -> build/lib/xbout copying xbout/_version.py -> build/lib/xbout copying xbout/__init__.py -> build/lib/xbout creating build/lib/xbout/calc copying xbout/calc/turbulence.py -> build/lib/xbout/calc copying xbout/calc/__init__.py -> build/lib/xbout/calc creating build/lib/xbout/plotting copying xbout/plotting/utils.py -> build/lib/xbout/plotting copying xbout/plotting/plotfuncs.py -> build/lib/xbout/plotting copying xbout/plotting/animate.py -> build/lib/xbout/plotting copying xbout/plotting/__init__.py -> build/lib/xbout/plotting running egg_info writing xbout.egg-info/PKG-INFO writing dependency_links to xbout.egg-info/dependency_links.txt writing requirements to xbout.egg-info/requires.txt writing top-level names to xbout.egg-info/top_level.txt WARNING setuptools_scm._file_finders.git git archive detected - fallback to listing all files adding license file 'LICENSE' writing manifest file 'xbout.egg-info/SOURCES.txt' /usr/lib/python3.13/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'xbout.calc.tests' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'xbout.calc.tests' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'xbout.calc.tests' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'xbout.calc.tests' to be distributed and are already explicitly excluding 'xbout.calc.tests' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.13/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'xbout.tests' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'xbout.tests' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'xbout.tests' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'xbout.tests' to be distributed and are already explicitly excluding 'xbout.tests' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.13/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'xbout.tests.data.options' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'xbout.tests.data.options' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'xbout.tests.data.options' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'xbout.tests.data.options' to be distributed and are already explicitly excluding 'xbout.tests.data.options' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.13/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'xbout.tests.data.restart' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'xbout.tests.data.restart' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'xbout.tests.data.restart' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'xbout.tests.data.restart' to be distributed and are already explicitly excluding 'xbout.tests.data.restart' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.13/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'xbout.tests.inputs' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'xbout.tests.inputs' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'xbout.tests.inputs' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'xbout.tests.inputs' to be distributed and are already explicitly excluding 'xbout.tests.inputs' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) creating build/lib/xbout/tests copying xbout/tests/__init__.py -> build/lib/xbout/tests copying xbout/tests/conftest.py -> build/lib/xbout/tests copying xbout/tests/test_against_collect.py -> build/lib/xbout/tests copying xbout/tests/test_animate.py -> build/lib/xbout/tests copying xbout/tests/test_boutdataarray.py -> build/lib/xbout/tests copying xbout/tests/test_boutdataset.py -> build/lib/xbout/tests copying xbout/tests/test_fastoutput.py -> build/lib/xbout/tests copying xbout/tests/test_geometries.py -> build/lib/xbout/tests copying xbout/tests/test_grid.py -> build/lib/xbout/tests copying xbout/tests/test_init.py -> build/lib/xbout/tests copying xbout/tests/test_load.py -> build/lib/xbout/tests copying xbout/tests/test_plot.py -> build/lib/xbout/tests copying xbout/tests/test_region.py -> build/lib/xbout/tests copying xbout/tests/test_utils.py -> build/lib/xbout/tests copying xbout/tests/utils_for_tests.py -> build/lib/xbout/tests creating build/lib/xbout/tests/data/options copying xbout/tests/data/options/BOUT.inp -> build/lib/xbout/tests/data/options creating build/lib/xbout/tests/data/restart copying xbout/tests/data/restart/BOUT.restart.0.nc -> build/lib/xbout/tests/data/restart copying xbout/tests/data/restart/BOUT.restart.1.nc -> build/lib/xbout/tests/data/restart copying xbout/tests/data/restart/README.md -> build/lib/xbout/tests/data/restart creating build/lib/xbout/tests/inputs copying xbout/tests/inputs/s-alpha.inp -> build/lib/xbout/tests/inputs creating build/lib/xbout/calc/tests copying xbout/calc/tests/test_turbulence.py -> build/lib/xbout/calc/tests installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/xbout creating build/bdist.linux-x86_64/wheel/xbout/tests creating build/bdist.linux-x86_64/wheel/xbout/tests/inputs copying build/lib/xbout/tests/inputs/s-alpha.inp -> build/bdist.linux-x86_64/wheel/./xbout/tests/inputs creating build/bdist.linux-x86_64/wheel/xbout/tests/data creating build/bdist.linux-x86_64/wheel/xbout/tests/data/restart copying build/lib/xbout/tests/data/restart/README.md -> build/bdist.linux-x86_64/wheel/./xbout/tests/data/restart copying build/lib/xbout/tests/data/restart/BOUT.restart.1.nc -> build/bdist.linux-x86_64/wheel/./xbout/tests/data/restart copying build/lib/xbout/tests/data/restart/BOUT.restart.0.nc -> build/bdist.linux-x86_64/wheel/./xbout/tests/data/restart creating build/bdist.linux-x86_64/wheel/xbout/tests/data/options copying build/lib/xbout/tests/data/options/BOUT.inp -> build/bdist.linux-x86_64/wheel/./xbout/tests/data/options copying build/lib/xbout/tests/utils_for_tests.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_utils.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_region.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_plot.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_load.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_init.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_grid.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_geometries.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_fastoutput.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_boutdataset.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_boutdataarray.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_animate.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/test_against_collect.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/conftest.py -> build/bdist.linux-x86_64/wheel/./xbout/tests copying build/lib/xbout/tests/__init__.py -> build/bdist.linux-x86_64/wheel/./xbout/tests creating build/bdist.linux-x86_64/wheel/xbout/plotting copying build/lib/xbout/plotting/__init__.py -> build/bdist.linux-x86_64/wheel/./xbout/plotting copying build/lib/xbout/plotting/animate.py -> build/bdist.linux-x86_64/wheel/./xbout/plotting copying build/lib/xbout/plotting/plotfuncs.py -> build/bdist.linux-x86_64/wheel/./xbout/plotting copying build/lib/xbout/plotting/utils.py -> build/bdist.linux-x86_64/wheel/./xbout/plotting creating build/bdist.linux-x86_64/wheel/xbout/calc creating build/bdist.linux-x86_64/wheel/xbout/calc/tests copying build/lib/xbout/calc/tests/test_turbulence.py -> build/bdist.linux-x86_64/wheel/./xbout/calc/tests copying build/lib/xbout/calc/__init__.py -> build/bdist.linux-x86_64/wheel/./xbout/calc copying build/lib/xbout/calc/turbulence.py -> build/bdist.linux-x86_64/wheel/./xbout/calc copying build/lib/xbout/__init__.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/_version.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/boutdataarray.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/boutdataset.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/conftest.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/fastoutput.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/geometries.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/load.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/region.py -> build/bdist.linux-x86_64/wheel/./xbout copying build/lib/xbout/utils.py -> build/bdist.linux-x86_64/wheel/./xbout running install_egg_info Copying xbout.egg-info to build/bdist.linux-x86_64/wheel/./xbout-0.3.6-py3.13.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/xbout-0.3.6.dist-info/WHEEL creating '/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir/pip-wheel-qh45mih0/.tmp-kfboo3on/xbout-0.3.6-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'xbout/__init__.py' adding 'xbout/_version.py' adding 'xbout/boutdataarray.py' adding 'xbout/boutdataset.py' adding 'xbout/conftest.py' adding 'xbout/fastoutput.py' adding 'xbout/geometries.py' adding 'xbout/load.py' adding 'xbout/region.py' adding 'xbout/utils.py' adding 'xbout/calc/__init__.py' adding 'xbout/calc/turbulence.py' adding 'xbout/calc/tests/test_turbulence.py' adding 'xbout/plotting/__init__.py' adding 'xbout/plotting/animate.py' adding 'xbout/plotting/plotfuncs.py' adding 'xbout/plotting/utils.py' adding 'xbout/tests/__init__.py' adding 'xbout/tests/conftest.py' adding 'xbout/tests/test_against_collect.py' adding 'xbout/tests/test_animate.py' adding 'xbout/tests/test_boutdataarray.py' adding 'xbout/tests/test_boutdataset.py' adding 'xbout/tests/test_fastoutput.py' adding 'xbout/tests/test_geometries.py' adding 'xbout/tests/test_grid.py' adding 'xbout/tests/test_init.py' adding 'xbout/tests/test_load.py' adding 'xbout/tests/test_plot.py' adding 'xbout/tests/test_region.py' adding 'xbout/tests/test_utils.py' adding 'xbout/tests/utils_for_tests.py' adding 'xbout/tests/data/options/BOUT.inp' adding 'xbout/tests/data/restart/BOUT.restart.0.nc' adding 'xbout/tests/data/restart/BOUT.restart.1.nc' adding 'xbout/tests/data/restart/README.md' adding 'xbout/tests/inputs/s-alpha.inp' adding 'xbout-0.3.6.dist-info/licenses/LICENSE' adding 'xbout-0.3.6.dist-info/METADATA' adding 'xbout-0.3.6.dist-info/WHEEL' adding 'xbout-0.3.6.dist-info/top_level.txt' adding 'xbout-0.3.6.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for xbout (pyproject.toml): finished with status 'done' Created wheel for xbout: filename=xbout-0.3.6-py3-none-any.whl size=140106 sha256=c75ba861ba0d303bcfbc259095590a5a6b92062223760d6e93035c41d5443a4f Stored in directory: /builddir/.cache/pip/wheels/c6/1a/be/25155f390e63f3ebd7eded5b4709779bc49b302869cf0ef5d8 Successfully built xbout + PYTHONPATH=/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6 + sphinx-build-3 docs html Running Sphinx v8.2.3 loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. [autosummary] generating autosummary for: accessor_methods.rst, api.rst, extending_xbout.rst, index.rst, loading_data.rst [autosummary] generating autosummary for: /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.rst [autosummary] generating autosummary for: /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.boutdataarray.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.boutdataset.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.calc.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.conftest.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.fastoutput.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.geometries.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.load.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.region.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.utils.rst [autosummary] generating autosummary for: /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.boutdataarray.BoutDataArrayAccessor.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.boutdataset.BoutDatasetAccessor.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.calc.turbulence.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.conftest.pytest_addoption.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.conftest.pytest_collection_modifyitems.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.conftest.pytest_configure.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.fastoutput.open_fastoutput.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.geometries.UnregisteredGeometryError.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.geometries.add_fci_geometry_coords.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.geometries.add_s_alpha_geometry_coords.rst, ..., /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_boutdataset.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_fastoutput.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_geometries.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_grid.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_init.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_load.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_plot.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_region.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_utils.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.utils_for_tests.rst [autosummary] generating autosummary for: /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.calc.turbulence.rms.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.animate.animate_line.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.animate.animate_pcolormesh.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.animate.animate_poloidal.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.plotfuncs.plot2d_wrapper.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.plotfuncs.plot3d.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.plotfuncs.plot_regions.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.utils.plot_separatrices.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.utils.plot_separatrix.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.plotting.utils.plot_targets.rst, ..., /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_load.test_check_extensions.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_load.test_set_fci_coords.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_plot.TestPlot.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_region.TestRegion.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.test_utils.TestUtils.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.utils_for_tests.create_bout_ds.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.utils_for_tests.create_bout_ds_list.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.utils_for_tests.create_bout_grid_ds.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.utils_for_tests.load_example_input.rst, /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/generated/xbout.tests.utils_for_tests.set_geometry_from_input_file.rst loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... loading intersphinx inventory 'numpy' from https://numpy.org/doc/stable/objects.inv ... loading intersphinx inventory 'scipy' from https://docs.scipy.org/doc/scipy/objects.inv ... loading intersphinx inventory 'xarray' from https://docs.xarray.dev/en/latest/objects.inv ... loading intersphinx inventory 'mayavi' from https://docs.enthought.com/mayavi/mayavi/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://numpy.org/doc/stable/objects.inv' not fetchable due to : HTTPSConnectionPool(host='numpy.org', port=443): Max retries exceeded with url: /doc/stable/objects.inv (Caused by NameResolutionError(": Failed to resolve 'numpy.org' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/3/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /3/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.python.org' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.scipy.org/doc/scipy/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.scipy.org', port=443): Max retries exceeded with url: /doc/scipy/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.scipy.org' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.enthought.com/mayavi/mayavi/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.enthought.com', port=443): Max retries exceeded with url: /mayavi/mayavi/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.enthought.com' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.xarray.dev/en/latest/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.xarray.dev', port=443): Max retries exceeded with url: /en/latest/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.xarray.dev' ([Errno -3] Temporary failure in name resolution)")) building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 5 source files that are out of date updating environment: [new config] 105 added, 0 changed, 0 removed reading sources... [ 1%] accessor_methods reading sources... [ 2%] api reading sources... [ 3%] extending_xbout reading sources... [ 4%] generated/xbout reading sources... [ 5%] generated/xbout.boutdataarray reading sources... [ 6%] generated/xbout.boutdataarray.BoutDataArrayAccessor reading sources... [ 7%] generated/xbout.boutdataset reading sources... [ 8%] generated/xbout.boutdataset.BoutDatasetAccessor reading sources... [ 9%] generated/xbout.calc reading sources... [ 10%] generated/xbout.calc.turbulence reading sources... [ 10%] generated/xbout.calc.turbulence.rms reading sources... [ 11%] generated/xbout.conftest reading sources... [ 12%] generated/xbout.conftest.pytest_addoption reading sources... [ 13%] generated/xbout.conftest.pytest_collection_modifyitems reading sources... [ 14%] generated/xbout.conftest.pytest_configure reading sources... [ 15%] generated/xbout.fastoutput reading sources... [ 16%] generated/xbout.fastoutput.open_fastoutput reading sources... [ 17%] generated/xbout.geometries reading sources... [ 18%] generated/xbout.geometries.UnregisteredGeometryError reading sources... [ 19%] generated/xbout.geometries.add_fci_geometry_coords reading sources... [ 20%] generated/xbout.geometries.add_s_alpha_geometry_coords reading sources... [ 21%] generated/xbout.geometries.add_toroidal_geometry_coords reading sources... [ 22%] generated/xbout.geometries.apply_geometry reading sources... [ 23%] generated/xbout.geometries.register_geometry reading sources... [ 24%] generated/xbout.load reading sources... [ 25%] generated/xbout.load.collect reading sources... [ 26%] generated/xbout.load.open_boutdataset reading sources... [ 27%] generated/xbout.plotting reading sources... [ 28%] generated/xbout.plotting.animate reading sources... [ 29%] generated/xbout.plotting.animate.animate_line reading sources... [ 30%] generated/xbout.plotting.animate.animate_pcolormesh reading sources... [ 30%] generated/xbout.plotting.animate.animate_poloidal reading sources... [ 31%] generated/xbout.plotting.plotfuncs reading sources... [ 32%] generated/xbout.plotting.plotfuncs.plot2d_wrapper reading sources... [ 33%] generated/xbout.plotting.plotfuncs.plot3d reading sources... [ 34%] generated/xbout.plotting.plotfuncs.plot_regions reading sources... [ 35%] generated/xbout.plotting.utils reading sources... [ 36%] generated/xbout.plotting.utils.plot_separatrices reading sources... [ 37%] generated/xbout.plotting.utils.plot_separatrix reading sources... [ 38%] generated/xbout.plotting.utils.plot_targets reading sources... [ 39%] generated/xbout.region reading sources... [ 40%] generated/xbout.region.Region reading sources... [ 41%] generated/xbout.region.topology_connected_double_null reading sources... [ 42%] generated/xbout.region.topology_core reading sources... [ 43%] generated/xbout.region.topology_limiter reading sources... [ 44%] generated/xbout.region.topology_lower_disconnected_double_null reading sources... [ 45%] generated/xbout.region.topology_single_null reading sources... [ 46%] generated/xbout.region.topology_sol reading sources... [ 47%] generated/xbout.region.topology_upper_disconnected_double_null reading sources... [ 48%] generated/xbout.region.topology_xpoint reading sources... [ 49%] generated/xbout.tests reading sources... [ 50%] generated/xbout.tests.conftest reading sources... [ 50%] generated/xbout.tests.conftest.bout_xyt_example_files reading sources... [ 51%] generated/xbout.tests.conftest.create_example_files_fci reading sources... [ 52%] generated/xbout.tests.conftest.create_example_grid_file_fci reading sources... [ 53%] generated/xbout.tests.test_against_collect reading sources... [ 54%] generated/xbout.tests.test_against_collect.TestAccuracyAgainstOldCollect reading sources... [ 55%] generated/xbout.tests.test_against_collect.test_speed_against_old_collect reading sources... [ 56%] generated/xbout.tests.test_animate reading sources... [ 57%] generated/xbout.tests.test_animate.TestAnimate reading sources... [ 58%] generated/xbout.tests.test_animate.create_test_file reading sources... [ 59%] generated/xbout.tests.test_boutdataarray reading sources... [ 60%] generated/xbout.tests.test_boutdataarray.TestBoutDataArrayMethods reading sources... [ 61%] generated/xbout.tests.test_boutdataset reading sources... [ 62%] generated/xbout.tests.test_boutdataset.TestBoutDatasetIsXarrayDataset reading sources... [ 63%] generated/xbout.tests.test_boutdataset.TestBoutDatasetMethods reading sources... [ 64%] generated/xbout.tests.test_boutdataset.TestLoadInputFile reading sources... [ 65%] generated/xbout.tests.test_boutdataset.TestLoadLogFile reading sources... [ 66%] generated/xbout.tests.test_boutdataset.TestSave reading sources... [ 67%] generated/xbout.tests.test_boutdataset.TestSaveRestart reading sources... [ 68%] generated/xbout.tests.test_fastoutput reading sources... [ 69%] generated/xbout.tests.test_fastoutput.TestFastOutput reading sources... [ 70%] generated/xbout.tests.test_fastoutput.make_fastoutput reading sources... [ 70%] generated/xbout.tests.test_fastoutput.make_fastoutput_set reading sources... [ 71%] generated/xbout.tests.test_geometries reading sources... [ 72%] generated/xbout.tests.test_geometries.TestGeometryRegistration reading sources... [ 73%] generated/xbout.tests.test_grid reading sources... [ 74%] generated/xbout.tests.test_grid.TestOpenGrid reading sources... [ 75%] generated/xbout.tests.test_grid.create_example_grid_file reading sources... [ 76%] generated/xbout.tests.test_init reading sources... [ 77%] generated/xbout.tests.test_init.test_version reading sources... [ 78%] generated/xbout.tests.test_load reading sources... [ 79%] generated/xbout.tests.test_load.TestArrange reading sources... [ 80%] generated/xbout.tests.test_load.TestOpen reading sources... [ 81%] generated/xbout.tests.test_load.TestPathHandling reading sources... [ 82%] generated/xbout.tests.test_load.TestStripMetadata reading sources... [ 83%] generated/xbout.tests.test_load.TestTrim reading sources... [ 84%] generated/xbout.tests.test_load.create_filepaths reading sources... [ 85%] generated/xbout.tests.test_load.test_check_extensions reading sources... [ 86%] generated/xbout.tests.test_load.test_set_fci_coords reading sources... [ 87%] generated/xbout.tests.test_plot reading sources... [ 88%] generated/xbout.tests.test_plot.TestPlot reading sources... [ 89%] generated/xbout.tests.test_region reading sources... [ 90%] generated/xbout.tests.test_region.TestRegion reading sources... [ 90%] generated/xbout.tests.test_utils reading sources... [ 91%] generated/xbout.tests.test_utils.TestUtils reading sources... [ 92%] generated/xbout.tests.utils_for_tests reading sources... [ 93%] generated/xbout.tests.utils_for_tests.create_bout_ds reading sources... [ 94%] generated/xbout.tests.utils_for_tests.create_bout_ds_list reading sources... [ 95%] generated/xbout.tests.utils_for_tests.create_bout_grid_ds reading sources... [ 96%] generated/xbout.tests.utils_for_tests.load_example_input reading sources... [ 97%] generated/xbout.tests.utils_for_tests.set_geometry_from_input_file reading sources... [ 98%] generated/xbout.utils reading sources... [ 99%] index reading sources... [100%] loading_data looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... WARNING: unsupported theme option 'repository_url' given WARNING: unsupported theme option 'repository_branch' given WARNING: unsupported theme option 'path_to_docs' given WARNING: unsupported theme option 'use_edit_page_button' given WARNING: unsupported theme option 'use_repository_button' given WARNING: unsupported theme option 'use_issues_button' given WARNING: unsupported theme option 'home_page_in_toc' given done copying assets... copying static files... Writing evaluated template result to /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/html/_static/language_data.js Writing evaluated template result to /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/html/_static/documentation_options.js Writing evaluated template result to /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/html/_static/basic.css Writing evaluated template result to /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/html/_static/alabaster.css copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 1%] accessor_methods writing output... [ 2%] api writing output... [ 3%] extending_xbout writing output... [ 4%] generated/xbout writing output... [ 5%] generated/xbout.boutdataarray writing output... [ 6%] generated/xbout.boutdataarray.BoutDataArrayAccessor writing output... [ 7%] generated/xbout.boutdataset writing output... [ 8%] generated/xbout.boutdataset.BoutDatasetAccessor writing output... [ 9%] generated/xbout.calc writing output... [ 10%] generated/xbout.calc.turbulence writing output... [ 10%] generated/xbout.calc.turbulence.rms writing output... [ 11%] generated/xbout.conftest writing output... [ 12%] generated/xbout.conftest.pytest_addoption writing output... [ 13%] generated/xbout.conftest.pytest_collection_modifyitems writing output... [ 14%] generated/xbout.conftest.pytest_configure writing output... [ 15%] generated/xbout.fastoutput writing output... [ 16%] generated/xbout.fastoutput.open_fastoutput writing output... [ 17%] generated/xbout.geometries writing output... [ 18%] generated/xbout.geometries.UnregisteredGeometryError writing output... [ 19%] generated/xbout.geometries.add_fci_geometry_coords writing output... [ 20%] generated/xbout.geometries.add_s_alpha_geometry_coords writing output... [ 21%] generated/xbout.geometries.add_toroidal_geometry_coords writing output... [ 22%] generated/xbout.geometries.apply_geometry writing output... [ 23%] generated/xbout.geometries.register_geometry writing output... [ 24%] generated/xbout.load writing output... [ 25%] generated/xbout.load.collect writing output... [ 26%] generated/xbout.load.open_boutdataset writing output... [ 27%] generated/xbout.plotting writing output... [ 28%] generated/xbout.plotting.animate writing output... [ 29%] generated/xbout.plotting.animate.animate_line writing output... [ 30%] generated/xbout.plotting.animate.animate_pcolormesh writing output... [ 30%] generated/xbout.plotting.animate.animate_poloidal writing output... [ 31%] generated/xbout.plotting.plotfuncs writing output... [ 32%] generated/xbout.plotting.plotfuncs.plot2d_wrapper writing output... [ 33%] generated/xbout.plotting.plotfuncs.plot3d writing output... [ 34%] generated/xbout.plotting.plotfuncs.plot_regions writing output... [ 35%] generated/xbout.plotting.utils writing output... [ 36%] generated/xbout.plotting.utils.plot_separatrices writing output... [ 37%] generated/xbout.plotting.utils.plot_separatrix writing output... [ 38%] generated/xbout.plotting.utils.plot_targets writing output... [ 39%] generated/xbout.region writing output... [ 40%] generated/xbout.region.Region writing output... [ 41%] generated/xbout.region.topology_connected_double_null writing output... [ 42%] generated/xbout.region.topology_core writing output... [ 43%] generated/xbout.region.topology_limiter writing output... [ 44%] generated/xbout.region.topology_lower_disconnected_double_null writing output... [ 45%] generated/xbout.region.topology_single_null writing output... [ 46%] generated/xbout.region.topology_sol writing output... [ 47%] generated/xbout.region.topology_upper_disconnected_double_null writing output... [ 48%] generated/xbout.region.topology_xpoint writing output... [ 49%] generated/xbout.tests writing output... [ 50%] generated/xbout.tests.conftest writing output... [ 50%] generated/xbout.tests.conftest.bout_xyt_example_files writing output... [ 51%] generated/xbout.tests.conftest.create_example_files_fci writing output... [ 52%] generated/xbout.tests.conftest.create_example_grid_file_fci writing output... [ 53%] generated/xbout.tests.test_against_collect writing output... [ 54%] generated/xbout.tests.test_against_collect.TestAccuracyAgainstOldCollect writing output... [ 55%] generated/xbout.tests.test_against_collect.test_speed_against_old_collect writing output... [ 56%] generated/xbout.tests.test_animate writing output... [ 57%] generated/xbout.tests.test_animate.TestAnimate writing output... [ 58%] generated/xbout.tests.test_animate.create_test_file writing output... [ 59%] generated/xbout.tests.test_boutdataarray writing output... [ 60%] generated/xbout.tests.test_boutdataarray.TestBoutDataArrayMethods writing output... [ 61%] generated/xbout.tests.test_boutdataset writing output... [ 62%] generated/xbout.tests.test_boutdataset.TestBoutDatasetIsXarrayDataset writing output... [ 63%] generated/xbout.tests.test_boutdataset.TestBoutDatasetMethods writing output... [ 64%] generated/xbout.tests.test_boutdataset.TestLoadInputFile writing output... [ 65%] generated/xbout.tests.test_boutdataset.TestLoadLogFile writing output... [ 66%] generated/xbout.tests.test_boutdataset.TestSave writing output... [ 67%] generated/xbout.tests.test_boutdataset.TestSaveRestart writing output... [ 68%] generated/xbout.tests.test_fastoutput writing output... [ 69%] generated/xbout.tests.test_fastoutput.TestFastOutput writing output... [ 70%] generated/xbout.tests.test_fastoutput.make_fastoutput writing output... [ 70%] generated/xbout.tests.test_fastoutput.make_fastoutput_set writing output... [ 71%] generated/xbout.tests.test_geometries writing output... [ 72%] generated/xbout.tests.test_geometries.TestGeometryRegistration writing output... [ 73%] generated/xbout.tests.test_grid writing output... [ 74%] generated/xbout.tests.test_grid.TestOpenGrid writing output... [ 75%] generated/xbout.tests.test_grid.create_example_grid_file writing output... [ 76%] generated/xbout.tests.test_init writing output... [ 77%] generated/xbout.tests.test_init.test_version writing output... [ 78%] generated/xbout.tests.test_load writing output... [ 79%] generated/xbout.tests.test_load.TestArrange writing output... [ 80%] generated/xbout.tests.test_load.TestOpen writing output... [ 81%] generated/xbout.tests.test_load.TestPathHandling writing output... [ 82%] generated/xbout.tests.test_load.TestStripMetadata writing output... [ 83%] generated/xbout.tests.test_load.TestTrim writing output... [ 84%] generated/xbout.tests.test_load.create_filepaths writing output... [ 85%] generated/xbout.tests.test_load.test_check_extensions writing output... [ 86%] generated/xbout.tests.test_load.test_set_fci_coords writing output... [ 87%] generated/xbout.tests.test_plot writing output... [ 88%] generated/xbout.tests.test_plot.TestPlot writing output... [ 89%] generated/xbout.tests.test_region writing output... [ 90%] generated/xbout.tests.test_region.TestRegion writing output... [ 90%] generated/xbout.tests.test_utils writing output... [ 91%] generated/xbout.tests.test_utils.TestUtils writing output... [ 92%] generated/xbout.tests.utils_for_tests writing output... [ 93%] generated/xbout.tests.utils_for_tests.create_bout_ds writing output... [ 94%] generated/xbout.tests.utils_for_tests.create_bout_ds_list writing output... [ 95%] generated/xbout.tests.utils_for_tests.create_bout_grid_ds writing output... [ 96%] generated/xbout.tests.utils_for_tests.load_example_input writing output... [ 97%] generated/xbout.tests.utils_for_tests.set_geometry_from_input_file writing output... [ 98%] generated/xbout.utils writing output... [ 99%] index writing output... [100%] loading_data /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/accessor_methods.rst:4: WARNING: 'any' reference target not found: xarray.Dataset [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/accessor_methods.rst:4: WARNING: 'any' reference target not found: xarray.DataArray [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataarray.py:docstring of xbout.boutdataarray.BoutDataArrayAccessor:4: WARNING: 'any' reference target not found: BoutOptionsFile [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataarray.py:docstring of xbout.boutdataarray.BoutDataArrayAccessor.interpolate_to_cartesian:3: WARNING: 'any' reference target not found: numpy.float32 [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataarray.py:docstring of xbout.boutdataarray.BoutDataArrayAccessor.interpolate_to_cartesian:14: WARNING: 'any' reference target not found: numpy.float32 [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataarray.py:docstring of xbout.boutdataarray.BoutDataArrayAccessor.interpolate_to_cartesian:16: WARNING: 'any' reference target not found: scipy.interpolate.RegularGridInterpolator [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataset.py:docstring of xbout.boutdataset.BoutDatasetAccessor:4: WARNING: 'any' reference target not found: BoutOptionsFile [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataset.py:docstring of xbout.boutdataset.BoutDatasetAccessor.integrate_midpoints:36: WARNING: 'any' reference target not found: ... [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataset.py:docstring of xbout.boutdataset.BoutDatasetAccessor.interpolate_to_cartesian:3: WARNING: 'any' reference target not found: numpy.float32 [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataset.py:docstring of xbout.boutdataset.BoutDatasetAccessor.interpolate_to_cartesian:18: WARNING: 'any' reference target not found: numpy.float32 [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/boutdataset.py:docstring of xbout.boutdataset.BoutDatasetAccessor.interpolate_to_cartesian:21: WARNING: 'any' reference target not found: scipy.interpolate.RegularGridInterpolator [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:docstring of xbout.load.open_boutdataset:20: WARNING: 'any' reference target not found: xarray.open_dataset [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:docstring of xbout.load.open_boutdataset:94: WARNING: 'any' reference target not found: xarray.open_mfdataset [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:docstring of xbout.load.open_boutdataset:94: WARNING: 'any' reference target not found: xarray.open_dataset [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/plotting/plotfuncs.py:docstring of xbout.plotting.plotfuncs.plot2d_wrapper:3: WARNING: 'any' reference target not found: xarray.DataArray.plot [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/plotting/plotfuncs.py:docstring of xbout.plotting.plotfuncs.plot3d:68: WARNING: 'any' reference target not found: mayavi.mlab.view [ref.any] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/docs/loading_data.rst:12: WARNING: 'any' reference target not found: xarray.Dataset [ref.any] generating indices... genindex py-modindex done highlighting module code... [ 4%] xbout.boutdataarray highlighting module code... [ 8%] xbout.boutdataset highlighting module code... [ 12%] xbout.calc.turbulence highlighting module code... [ 16%] xbout.conftest highlighting module code... [ 20%] xbout.fastoutput highlighting module code... [ 24%] xbout.geometries highlighting module code... [ 28%] xbout.load highlighting module code... [ 32%] xbout.plotting.animate highlighting module code... [ 36%] xbout.plotting.plotfuncs highlighting module code... [ 40%] xbout.plotting.utils highlighting module code... [ 44%] xbout.region highlighting module code... [ 48%] xbout.tests.conftest highlighting module code... [ 52%] xbout.tests.test_against_collect highlighting module code... [ 56%] xbout.tests.test_animate highlighting module code... [ 60%] xbout.tests.test_boutdataarray highlighting module code... [ 64%] xbout.tests.test_boutdataset highlighting module code... [ 68%] xbout.tests.test_fastoutput highlighting module code... [ 72%] xbout.tests.test_geometries highlighting module code... [ 76%] xbout.tests.test_grid highlighting module code... [ 80%] xbout.tests.test_init highlighting module code... [ 84%] xbout.tests.test_load highlighting module code... [ 88%] xbout.tests.test_plot highlighting module code... [ 92%] xbout.tests.test_region highlighting module code... [ 96%] xbout.tests.test_utils highlighting module code... [100%] xbout.tests.utils_for_tests writing additional pages... search done copying images... [100%] images/n_over_t.gif dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 29 warnings. The HTML pages are in html. + rm -rf html/.doctrees html/.buildinfo + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.E4YnMh + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + '[' /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-xbout-0.3.6-build + mkdir /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd xbout-0.3.6 ++ ls /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/pyproject-wheeldir/xbout-0.3.6-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=xbout==0.3.6 + '[' -z xbout==0.3.6 ']' + TMPDIR=/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/pyproject-wheeldir xbout==0.3.6 Using pip 25.1.1 from /usr/lib/python3.13/site-packages/pip (python 3.13) Looking in links: /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/pyproject-wheeldir Processing ./pyproject-wheeldir/xbout-0.3.6-py3-none-any.whl Installing collected packages: xbout Successfully installed xbout-0.3.6 + '[' -d /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/bin ']' + rm -f /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages ']' + site_dirs+=("/usr/lib/python3.13/site-packages") + '[' /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib64/python3.13/site-packages '!=' /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages ']' + '[' -d /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib64/python3.13/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.13/site-packages/xbout-0.3.6.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout-0.3.6.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT --record /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout-0.3.6.dist-info/RECORD --output /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-record + rm -fv /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout-0.3.6.dist-info/RECORD removed '/builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout-0.3.6.dist-info/RECORD' + rm -fv /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout-0.3.6.dist-info/REQUESTED removed '/builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout-0.3.6.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_FILES_ESCAPE=4.19 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-modules --buildroot /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT --sitelib /usr/lib/python3.13/site-packages --sitearch /usr/lib64/python3.13/site-packages --python-version 3.13 --pyproject-record /builddir/build/BUILD/python-xbout-0.3.6-build/python-xbout-0.3.6-5.fc43.x86_64-pyproject-record --prefix /usr xbout + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j4 Bytecompiling .py files below /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13 using python3.13 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-determinism --brp -j4 /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/utils.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/region.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/load.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/boutdataset.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/geometries.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/load.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/conftest.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/fastoutput.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/_version.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/geometries.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_fastoutput.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_fastoutput.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/utils_for_tests.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_utils.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/__pycache__/boutdataarray.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_utils.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_region.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_boutdataarray.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_boutdataset.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_boutdataset.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_plot.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_init.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_load.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_init.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_load.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_geometries.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_grid.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_geometries.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_against_collect.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_animate.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_against_collect.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_boutdataarray.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/conftest.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/plotting/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/tests/__pycache__/test_animate.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/calc/__pycache__/turbulence.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/plotting/__pycache__/utils.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/calc/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/calc/tests/__pycache__/test_turbulence.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/plotting/__pycache__/animate.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages/xbout/plotting/__pycache__/plotfuncs.cpython-313.opt-1.pyc: rewriting with normalized contents Scanned 21 directories and 106 files, processed 43 inodes, 43 modified (22 replaced + 21 rewritten), 0 unsupported format, 0 errors Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.7Ta4JL + umask 022 + cd /builddir/build/BUILD/python-xbout-0.3.6-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd xbout-0.3.6 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib64/python3.13/site-packages:/builddir/build/BUILD/python-xbout-0.3.6-build/BUILDROOT/usr/lib/python3.13/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=4 + /usr/bin/pytest xbout --long --durations=0 ============================= test session starts ============================== platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 rootdir: /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6 configfile: pyproject.toml collected 796 items xbout/calc/tests/test_turbulence.py ..... [ 0%] xbout/tests/test_against_collect.py FFFFF... [ 1%] xbout/tests/test_animate.py EEEEEEEEEEEEEEEEEEEEEEEsEEEEEEEEEEEEEEE [ 6%] xbout/tests/test_boutdataarray.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 11%] FFFFFFFFFFFFFFFFFF [ 13%] xbout/tests/test_boutdataset.py FFFFFFFFFFFFFFFFFFFFFF.FFFFFFFFFFFFFFFFF [ 18%] FFFFFFFFFFFFFFFFFFFFFFFFFFssFFFFFFFFFFFFFFFFFF. [ 24%] xbout/tests/test_fastoutput.py . [ 24%] xbout/tests/test_geometries.py .. [ 24%] xbout/tests/test_grid.py ..... [ 25%] xbout/tests/test_init.py . [ 25%] xbout/tests/test_load.py ..........................FFFFFFFFFFFFsFF....FF [ 31%] Fs...................................................................... [ 40%] ............ [ 42%] xbout/tests/test_plot.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 47%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 57%] FFFFFFFFFFFFFFFFFFFFFFFFF [ 60%] xbout/tests/test_region.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 65%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 74%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 83%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 92%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 98%] xbout/tests/test_utils.py ............. [100%] ==================================== ERRORS ==================================== _________________ ERROR at setup of TestAnimate.test_animate2D _________________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05336a6e00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate2D_controls_arg[controls0] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053577dba0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate2D_controls_arg[controls1] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533696740> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate2D_controls_arg[controls2] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05339bb2e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate2D_controls_arg[controls3] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053534a1a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate2D_controls_arg[controls4] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b47520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate2D_controls_arg[controls5] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05353dfbe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________________ ERROR at setup of TestAnimate.test_animate1D _________________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053409c460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate1D_controls_arg[controls0] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534380d00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate1D_controls_arg[controls1] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535362e60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate1D_controls_arg[controls2] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053593ffa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate1D_controls_arg[controls3] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533de99c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate1D_controls_arg[controls4] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533abf7c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ ERROR at setup of TestAnimate.test_animate1D_controls_arg[controls5] _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05354316c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _______________ ERROR at setup of TestAnimate.test_animate_list ________________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a659c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ ERROR at setup of TestAnimate.test_animate_list_1d_default __________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343a5a20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________ ERROR at setup of TestAnimate.test_animate_list_1d_multiline _________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05357c6a40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________ ERROR at setup of TestAnimate.test_animate_list_animate_over _________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05353eea40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ ERROR at setup of TestAnimate.test_animate_list_save_as ____________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053409d780> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ ERROR at setup of TestAnimate.test_animate_list_fps ______________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ff2500> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ ERROR at setup of TestAnimate.test_animate_list_nrows _____________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ff3220> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ ERROR at setup of TestAnimate.test_animate_list_ncols _____________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05357a9c60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____ ERROR at setup of TestAnimate.test_animate_list_not_enough_nrowsncols _____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533825a20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _______ ERROR at setup of TestAnimate.test_animate_list_subplots_adjust ________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05353493c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ ERROR at setup of TestAnimate.test_animate_list_vmin _____________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053391e440> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ ERROR at setup of TestAnimate.test_animate_list_vmin_list ___________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ad9600> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ ERROR at setup of TestAnimate.test_animate_list_vmax _____________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b42740> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ ERROR at setup of TestAnimate.test_animate_list_vmax_list ___________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05353f4b20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ ERROR at setup of TestAnimate.test_animate_list_logscale ___________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053545e800> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________ ERROR at setup of TestAnimate.test_animate_list_logscale_float ________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05357c6560> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________ ERROR at setup of TestAnimate.test_animate_list_logscale_list _________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a4e3e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________ ERROR at setup of TestAnimate.test_animate_list_titles_list __________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a64c40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ ERROR at setup of TestAnimate.test_animate_list_controls_arg[controls0] ____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a4ce80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ ERROR at setup of TestAnimate.test_animate_list_controls_arg[controls1] ____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05336973a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ ERROR at setup of TestAnimate.test_animate_list_controls_arg[controls2] ____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053535d660> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ ERROR at setup of TestAnimate.test_animate_list_controls_arg[controls3] ____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533dd6b60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ ERROR at setup of TestAnimate.test_animate_list_controls_arg[controls4] ____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053534afe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ ERROR at setup of TestAnimate.test_animate_list_controls_arg[controls5] ____ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') @pytest.fixture def create_test_file(tmp_path_factory): # Create temp dir for output of animate1D/2D save_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for ds, file_name in zip(ds_list, file_list): ds.to_netcdf(save_dir.joinpath(file_name)) with pytest.warns(UserWarning): > ds = open_boutdataset(save_dir.joinpath("BOUT.dmp.*.nc")) # Open test data xbout/tests/test_animate.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533c45000> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError =================================== FAILURES =================================== ________________ TestAccuracyAgainstOldCollect.test_single_file ________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') def test_single_file(self, tmp_path_factory): # Create temp directory for files test_dir = tmp_path_factory.mktemp("test_data") # Generate some test data generated_ds = create_bout_ds(syn_data_type="linear") generated_ds.to_netcdf(test_dir.joinpath("BOUT.dmp.0.nc")) var = "n" expected = old_collect(var, path=test_dir, xguards=True, yguards=False) # Test against new standard - open_boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(test_dir.joinpath("BOUT.dmp.0.nc")) xbout/tests/test_against_collect.py:26: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053585a8c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- mxsub = 2 mysub = 4 mz = 7 nxpe = 1, nype = 1, npes = 1 Reading from 0: [0-1][0-3] -> [0-1][0-3] __________ TestAccuracyAgainstOldCollect.test_multiple_files_along_x ___________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') def test_multiple_files_along_x(self, tmp_path_factory): # Create temp directory for files test_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=1, syn_data_type="linear" ) for temp_ds, file_name in zip(ds_list, file_list): temp_ds.to_netcdf(test_dir.joinpath(file_name)) var = "n" expected = old_collect(var, path=test_dir, prefix="BOUT.dmp", xguards=True) # Test against new standard - open_boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(test_dir.joinpath("BOUT.dmp.*.nc")) xbout/tests/test_against_collect.py:54: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05339ba920> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- mxsub = 2 mysub = 4 mz = 7 nxpe = 3, nype = 1, npes = 3 Reading from 0: [0-1][0-3] -> [0-1][0-3] Reading from 1: [0-1][0-3] -> [2-3][0-3] Reading from 2: [0-1][0-3] -> [4-5][0-3] __________ TestAccuracyAgainstOldCollect.test_multiple_files_along_y ___________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') def test_multiple_files_along_y(self, tmp_path_factory): # Create temp directory for files test_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=1, nype=3, syn_data_type="linear" ) for temp_ds, file_name in zip(ds_list, file_list): temp_ds.to_netcdf(test_dir.joinpath(file_name)) var = "n" expected = old_collect(var, path=test_dir, prefix="BOUT.dmp", xguards=True) # Test against new standard - .open_boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(test_dir.joinpath("BOUT.dmp.*.nc")) xbout/tests/test_against_collect.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535430d60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- mxsub = 2 mysub = 4 mz = 7 nxpe = 1, nype = 3, npes = 3 Reading from 0: [0-1][0-3] -> [0-1][0-3] Reading from 1: [0-1][0-3] -> [0-1][4-7] Reading from 2: [0-1][0-3] -> [0-1][8-11] __________ TestAccuracyAgainstOldCollect.test_multiple_files_along_xy __________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') def test_multiple_files_along_xy(self, tmp_path_factory): # Create temp directory for files test_dir = tmp_path_factory.mktemp("test_data") # Generate some test data ds_list, file_list = create_bout_ds_list( "BOUT.dmp", nxpe=3, nype=3, syn_data_type="linear" ) for temp_ds, file_name in zip(ds_list, file_list): temp_ds.to_netcdf(test_dir.joinpath(file_name)) var = "n" expected = old_collect(var, path=test_dir, prefix="BOUT.dmp", xguards=True) # Test against new standard - .open_boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(test_dir.joinpath("BOUT.dmp.*.nc")) xbout/tests/test_against_collect.py:110: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b086a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- mxsub = 2 mysub = 4 mz = 7 nxpe = 3, nype = 3, npes = 9 Reading from 0: [0-1][0-3] -> [0-1][0-3] Reading from 1: [0-1][0-3] -> [2-3][0-3] Reading from 2: [0-1][0-3] -> [4-5][0-3] Reading from 3: [0-1][0-3] -> [0-1][4-7] Reading from 4: [0-1][0-3] -> [2-3][4-7] Reading from 5: [0-1][0-3] -> [4-5][4-7] Reading from 6: [0-1][0-3] -> [0-1][8-11] Reading from 7: [0-1][0-3] -> [2-3][8-11] Reading from 8: [0-1][0-3] -> [4-5][8-11] _________________ TestAccuracyAgainstOldCollect.test_metadata __________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') def test_metadata(self, tmp_path_factory): # Create temp directory for files test_dir = tmp_path_factory.mktemp("test_data") # Generate some test data generated_ds = create_bout_ds(syn_data_type="linear") generated_ds.to_netcdf(test_dir.joinpath("BOUT.dmp.0.nc")) with pytest.warns(UserWarning): > ds = open_boutdataset(test_dir.joinpath("BOUT.dmp.*.nc")) xbout/tests/test_against_collect.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05339cb340> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________________ TestBoutDataArrayMethods.test_to_dataset ___________________ self = bout_xyt_example_files = def test_to_dataset(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files(None, nxpe=3, nype=4, nt=1) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:20: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533d6aaa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________ TestBoutDataArrayMethods.test_remove_yboundaries[False-0-0] __________ self = bout_xyt_example_files = mxg = 0, myg = 0, remove_extra_upper = False @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05357aca60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _________ TestBoutDataArrayMethods.test_remove_yboundaries[False-0-2] __________ self = bout_xyt_example_files = mxg = 2, myg = 0, remove_extra_upper = False @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053438f520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _________ TestBoutDataArrayMethods.test_remove_yboundaries[False-2-0] __________ self = bout_xyt_example_files = mxg = 0, myg = 2, remove_extra_upper = False @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533acf940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _________ TestBoutDataArrayMethods.test_remove_yboundaries[False-2-2] __________ self = bout_xyt_example_files = mxg = 2, myg = 2, remove_extra_upper = False @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b8f5e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __________ TestBoutDataArrayMethods.test_remove_yboundaries[True-0-0] __________ self = bout_xyt_example_files = mxg = 0, myg = 0, remove_extra_upper = True @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ace680> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __________ TestBoutDataArrayMethods.test_remove_yboundaries[True-0-2] __________ self = bout_xyt_example_files = mxg = 2, myg = 0, remove_extra_upper = True @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b81960> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __________ TestBoutDataArrayMethods.test_remove_yboundaries[True-2-0] __________ self = bout_xyt_example_files = mxg = 0, myg = 2, remove_extra_upper = True @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b8f6a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __________ TestBoutDataArrayMethods.test_remove_yboundaries[True-2-2] __________ self = bout_xyt_example_files = mxg = 2, myg = 2, remove_extra_upper = True @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) @pytest.mark.parametrize( "remove_extra_upper", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_remove_yboundaries( self, bout_xyt_example_files, mxg, myg, remove_extra_upper ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535433760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ___________ TestBoutDataArrayMethods.test_to_field_aligned[False-6] ____________ self = bout_xyt_example_files = nz = 6, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534f54400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_to_field_aligned[False-7] ____________ self = bout_xyt_example_files = nz = 7, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05357ab1c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_to_field_aligned[False-8] ____________ self = bout_xyt_example_files = nz = 8, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053545ece0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_to_field_aligned[False-9] ____________ self = bout_xyt_example_files = nz = 9, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053593ef80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ TestBoutDataArrayMethods.test_to_field_aligned[True-6] ____________ self = bout_xyt_example_files = nz = 6, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b30100> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ TestBoutDataArrayMethods.test_to_field_aligned[True-7] ____________ self = bout_xyt_example_files = nz = 7, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533fccbe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ TestBoutDataArrayMethods.test_to_field_aligned[True-8] ____________ self = bout_xyt_example_files = nz = 8, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534328c40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ TestBoutDataArrayMethods.test_to_field_aligned[True-9] ____________ self = bout_xyt_example_files = nz = 9, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05339cb940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ TestBoutDataArrayMethods.test_to_field_aligned_dask[False] __________ self = bout_xyt_example_files = permute_dims = False @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_dask(self, bout_xyt_example_files, permute_dims): nz = 6 dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:216: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053369ea40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ TestBoutDataArrayMethods.test_to_field_aligned_dask[True] ___________ self = bout_xyt_example_files = permute_dims = True @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_dask(self, bout_xyt_example_files, permute_dims): nz = 6 dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:216: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b407c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ TestBoutDataArrayMethods.test_from_field_aligned[False-6] ___________ self = bout_xyt_example_files = nz = 6, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343ee7a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ TestBoutDataArrayMethods.test_from_field_aligned[False-7] ___________ self = bout_xyt_example_files = nz = 7, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ce81c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ TestBoutDataArrayMethods.test_from_field_aligned[False-8] ___________ self = bout_xyt_example_files = nz = 8, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05353f7e20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ TestBoutDataArrayMethods.test_from_field_aligned[False-9] ___________ self = bout_xyt_example_files = nz = 9, permute_dims = False @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533fcc7c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_from_field_aligned[True-6] ___________ self = bout_xyt_example_files = nz = 6, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534382c20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_from_field_aligned[True-7] ___________ self = bout_xyt_example_files = nz = 7, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b93a60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_from_field_aligned[True-8] ___________ self = bout_xyt_example_files = nz = 8, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533bd1cc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_from_field_aligned[True-9] ___________ self = bout_xyt_example_files = nz = 9, permute_dims = True @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned(self, bout_xyt_example_files, nz, permute_dims): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b425c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __ TestBoutDataArrayMethods.test_to_field_aligned_staggered[False-CELL_XLOW] ___ self = bout_xyt_example_files = stag_location = 'CELL_XLOW', permute_dims = False @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:447: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534fec9a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __ TestBoutDataArrayMethods.test_to_field_aligned_staggered[False-CELL_YLOW] ___ self = bout_xyt_example_files = stag_location = 'CELL_YLOW', permute_dims = False @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:447: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535348760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __ TestBoutDataArrayMethods.test_to_field_aligned_staggered[False-CELL_ZLOW] ___ self = bout_xyt_example_files = stag_location = 'CELL_ZLOW', permute_dims = False @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:447: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533bd3ac0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ TestBoutDataArrayMethods.test_to_field_aligned_staggered[True-CELL_XLOW] ___ self = bout_xyt_example_files = stag_location = 'CELL_XLOW', permute_dims = True @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:447: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a66320> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ TestBoutDataArrayMethods.test_to_field_aligned_staggered[True-CELL_YLOW] ___ self = bout_xyt_example_files = stag_location = 'CELL_YLOW', permute_dims = True @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:447: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343efbe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ TestBoutDataArrayMethods.test_to_field_aligned_staggered[True-CELL_ZLOW] ___ self = bout_xyt_example_files = stag_location = 'CELL_ZLOW', permute_dims = True @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_to_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:447: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053593ef80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _ TestBoutDataArrayMethods.test_from_field_aligned_staggered[False-CELL_XLOW] __ self = bout_xyt_example_files = stag_location = 'CELL_XLOW', permute_dims = False @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05354317e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _ TestBoutDataArrayMethods.test_from_field_aligned_staggered[False-CELL_YLOW] __ self = bout_xyt_example_files = stag_location = 'CELL_YLOW', permute_dims = False @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b329e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _ TestBoutDataArrayMethods.test_from_field_aligned_staggered[False-CELL_ZLOW] __ self = bout_xyt_example_files = stag_location = 'CELL_ZLOW', permute_dims = False @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f2bbe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __ TestBoutDataArrayMethods.test_from_field_aligned_staggered[True-CELL_XLOW] __ self = bout_xyt_example_files = stag_location = 'CELL_XLOW', permute_dims = True @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053534b4c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __ TestBoutDataArrayMethods.test_from_field_aligned_staggered[True-CELL_YLOW] __ self = bout_xyt_example_files = stag_location = 'CELL_YLOW', permute_dims = True @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ce8820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __ TestBoutDataArrayMethods.test_from_field_aligned_staggered[True-CELL_ZLOW] __ self = bout_xyt_example_files = stag_location = 'CELL_ZLOW', permute_dims = True @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) @pytest.mark.parametrize( "permute_dims", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_from_field_aligned_staggered( self, bout_xyt_example_files, stag_location, permute_dims ): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534f54ee0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________ TestBoutDataArrayMethods.test_interpolate_parallel_region_core ________ self = bout_xyt_example_files = @pytest.mark.long def test_interpolate_parallel_region_core(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=1, nt=1, grid="grid", guards={"y": 2}, topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:577: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053406ebc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __ TestBoutDataArrayMethods.test_interpolate_parallel_region_core_change_n[2] __ self = bout_xyt_example_files = res_factor = 2 @pytest.mark.parametrize( "res_factor", [ pytest.param(2, marks=pytest.mark.long), 3, pytest.param(7, marks=pytest.mark.long), pytest.param(18, marks=pytest.mark.long), ], ) def test_interpolate_parallel_region_core_change_n( self, bout_xyt_example_files, res_factor ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=1, nt=1, grid="grid", guards={"y": 2}, topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:635: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533d19660> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __ TestBoutDataArrayMethods.test_interpolate_parallel_region_core_change_n[3] __ self = bout_xyt_example_files = res_factor = 3 @pytest.mark.parametrize( "res_factor", [ pytest.param(2, marks=pytest.mark.long), 3, pytest.param(7, marks=pytest.mark.long), pytest.param(18, marks=pytest.mark.long), ], ) def test_interpolate_parallel_region_core_change_n( self, bout_xyt_example_files, res_factor ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=1, nt=1, grid="grid", guards={"y": 2}, topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:635: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534f56c20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __ TestBoutDataArrayMethods.test_interpolate_parallel_region_core_change_n[7] __ self = bout_xyt_example_files = res_factor = 7 @pytest.mark.parametrize( "res_factor", [ pytest.param(2, marks=pytest.mark.long), 3, pytest.param(7, marks=pytest.mark.long), pytest.param(18, marks=pytest.mark.long), ], ) def test_interpolate_parallel_region_core_change_n( self, bout_xyt_example_files, res_factor ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=1, nt=1, grid="grid", guards={"y": 2}, topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:635: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b8d960> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDataArrayMethods.test_interpolate_parallel_region_core_change_n[18] __ self = bout_xyt_example_files = res_factor = 18 @pytest.mark.parametrize( "res_factor", [ pytest.param(2, marks=pytest.mark.long), 3, pytest.param(7, marks=pytest.mark.long), pytest.param(18, marks=pytest.mark.long), ], ) def test_interpolate_parallel_region_core_change_n( self, bout_xyt_example_files, res_factor ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=1, nt=1, grid="grid", guards={"y": 2}, topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:635: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533706380> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestBoutDataArrayMethods.test_interpolate_parallel_region_sol _________ self = bout_xyt_example_files = @pytest.mark.long def test_interpolate_parallel_region_sol(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=1, nt=1, grid="grid", guards={"y": 2}, topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:687: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05359a25c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____ TestBoutDataArrayMethods.test_interpolate_parallel_region_singlenull _____ self = bout_xyt_example_files = def test_interpolate_parallel_region_singlenull(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=3, nt=1, grid="grid", guards={"y": 2}, topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:734: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533fccdc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestBoutDataArrayMethods.test_interpolate_parallel ______________ self = bout_xyt_example_files = def test_interpolate_parallel(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=3, nt=1, grid="grid", guards={"y": 2}, topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:806: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535363580> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestBoutDataArrayMethods.test_interpolate_parallel_sol ____________ self = bout_xyt_example_files = def test_interpolate_parallel_sol(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=1, nt=1, grid="grid", guards={"y": 2}, topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:860: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533d89c00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______ TestBoutDataArrayMethods.test_interpolate_parallel_toroidal_points ______ self = bout_xyt_example_files = def test_interpolate_parallel_toroidal_points(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=3, nt=1, grid="grid", guards={"y": 2}, topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:912: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b3b9a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ___ TestBoutDataArrayMethods.test_interpolate_parallel_toroidal_points_list ____ self = bout_xyt_example_files = def test_interpolate_parallel_toroidal_points_list(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 16, 3), nxpe=1, nype=3, nt=1, grid="grid", guards={"y": 2}, topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:937: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533c5d6c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestBoutDataArrayMethods.test_interpolate_to_cartesian ____________ self = bout_xyt_example_files = def test_interpolate_to_cartesian(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files( None, lengths=(2, 16, 17, 18), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:959: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533b41540> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________ TestBoutDataArrayMethods.test_add_cartesian_coordinates ____________ self = bout_xyt_example_files = def test_add_cartesian_coordinates(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files(None, nxpe=1, nype=1, nt=1) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataarray.py:999: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053438cac0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________________ TestBoutDataArrayMethods.test_ddx _______________________ self = bout_xyt_example_files = def test_ddx(self, bout_xyt_example_files): nx = 64 dataset_list = bout_xyt_example_files( None, lengths=(2, nx, 4, 3), nxpe=1, nype=1, ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, ) xbout/tests/test_boutdataarray.py:1044: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343754e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________________ TestBoutDataArrayMethods.test_ddy _______________________ self = bout_xyt_example_files = def test_ddy(self, bout_xyt_example_files): ny = 64 dataset_list, gridfilepath = bout_xyt_example_files( None, lengths=(2, 3, ny, 4), nxpe=1, nype=1, grid="grid", ) > ds = open_boutdataset( datapath=dataset_list, geometry="toroidal", gridfilepath=gridfilepath ) xbout/tests/test_boutdataarray.py:1078: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05353df040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________________ TestBoutDataArrayMethods.test_ddz _______________________ self = bout_xyt_example_files = def test_ddz(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files( None, lengths=(2, 3, 4, 64), nxpe=1, nype=1, ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, ) xbout/tests/test_boutdataarray.py:1109: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533bc0400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ TestBoutDataArrayMethods.test_derivatives_doublenull _____________ self = bout_xyt_example_files = def test_derivatives_doublenull(self, bout_xyt_example_files): # Check function does not error on double-null topology dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": 2, "y": 2}, topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataarray.py:1141: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053535f0a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions __________________ TestBoutDatasetIsXarrayDataset.test_concat __________________ self = bout_xyt_example_files = def test_concat(self, bout_xyt_example_files): dataset_list1 = bout_xyt_example_files(None, nxpe=3, nype=4, nt=1) with pytest.warns(UserWarning): > bd1 = open_boutdataset( datapath=dataset_list1, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ab34c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________________ TestBoutDatasetIsXarrayDataset.test_isel ___________________ self = bout_xyt_example_files = def test_isel(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files(None, nxpe=1, nype=1, nt=1) with pytest.warns(UserWarning): > bd = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535364580> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________ TestBoutDatasetMethods.test_get_field_aligned _________________ self = bout_xyt_example_files = def test_get_field_aligned(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files(None, nxpe=3, nype=4, nt=1) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:62: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053543eda0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ TestBoutDatasetMethods.test_remove_yboundaries[0-0] ______________ self = bout_xyt_example_files = mxg = 0, myg = 0 @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) def test_remove_yboundaries(self, bout_xyt_example_files, mxg, myg): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataset.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05340ef940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestBoutDatasetMethods.test_remove_yboundaries[0-2] ______________ self = bout_xyt_example_files = mxg = 2, myg = 0 @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) def test_remove_yboundaries(self, bout_xyt_example_files, mxg, myg): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataset.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053402b7c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestBoutDatasetMethods.test_remove_yboundaries[2-0] ______________ self = bout_xyt_example_files = mxg = 0, myg = 2 @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) def test_remove_yboundaries(self, bout_xyt_example_files, mxg, myg): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataset.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534371a20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestBoutDatasetMethods.test_remove_yboundaries[2-2] ______________ self = bout_xyt_example_files = mxg = 2, myg = 2 @pytest.mark.parametrize("mxg", [0, pytest.param(2, marks=pytest.mark.long)]) @pytest.mark.parametrize("myg", [pytest.param(0, marks=pytest.mark.long), 2]) def test_remove_yboundaries(self, bout_xyt_example_files, mxg, myg): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=6, nt=1, grid="grid", guards={"x": mxg, "y": myg}, topology="connected-double-null", syn_data_type="linear", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_yboundaries=True, ) xbout/tests/test_boutdataset.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a26bc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestBoutDatasetMethods.test_to_field_aligned[6] ________________ self = bout_xyt_example_files = nz = 6 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_to_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a861a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _______________ TestBoutDatasetMethods.test_to_field_aligned[7] ________________ self = bout_xyt_example_files = nz = 7 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_to_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343cc9a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _______________ TestBoutDatasetMethods.test_to_field_aligned[8] ________________ self = bout_xyt_example_files = nz = 8 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_to_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053537f640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _______________ TestBoutDatasetMethods.test_to_field_aligned[9] ________________ self = bout_xyt_example_files = nz = 9 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_to_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a6b8e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestBoutDatasetMethods.test_to_field_aligned_dask _______________ self = bout_xyt_example_files = def test_to_field_aligned_dask(self, bout_xyt_example_files): nz = 6 dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:269: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343ce6e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestBoutDatasetMethods.test_from_field_aligned[6] _______________ self = bout_xyt_example_files = nz = 6 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_from_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a50e80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestBoutDatasetMethods.test_from_field_aligned[7] _______________ self = bout_xyt_example_files = nz = 7 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_from_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343702e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestBoutDatasetMethods.test_from_field_aligned[8] _______________ self = bout_xyt_example_files = nz = 8 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_from_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05340eef20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestBoutDatasetMethods.test_from_field_aligned[9] _______________ self = bout_xyt_example_files = nz = 9 @pytest.mark.parametrize( "nz", [ pytest.param(6, marks=pytest.mark.long), 7, pytest.param(8, marks=pytest.mark.long), pytest.param(9, marks=pytest.mark.long), ], ) def test_from_field_aligned(self, bout_xyt_example_files, nz): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, nz), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a6b7c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______ TestBoutDatasetMethods.test_to_field_aligned_staggered[CELL_XLOW] _______ self = bout_xyt_example_files = stag_location = 'CELL_XLOW' @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) def test_to_field_aligned_staggered(self, bout_xyt_example_files, stag_location): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:494: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a53220> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______ TestBoutDatasetMethods.test_to_field_aligned_staggered[CELL_YLOW] _______ self = bout_xyt_example_files = stag_location = 'CELL_YLOW' @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) def test_to_field_aligned_staggered(self, bout_xyt_example_files, stag_location): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:494: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343cffa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______ TestBoutDatasetMethods.test_to_field_aligned_staggered[CELL_ZLOW] _______ self = bout_xyt_example_files = stag_location = 'CELL_ZLOW' @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) def test_to_field_aligned_staggered(self, bout_xyt_example_files, stag_location): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:494: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533a24880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ TestBoutDatasetMethods.test_from_field_aligned_staggered[CELL_XLOW] ______ self = bout_xyt_example_files = stag_location = 'CELL_XLOW' @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) def test_from_field_aligned_staggered(self, bout_xyt_example_files, stag_location): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343bba00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ TestBoutDatasetMethods.test_from_field_aligned_staggered[CELL_YLOW] ______ self = bout_xyt_example_files = stag_location = 'CELL_YLOW' @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) def test_from_field_aligned_staggered(self, bout_xyt_example_files, stag_location): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343ce800> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ TestBoutDatasetMethods.test_from_field_aligned_staggered[CELL_ZLOW] ______ self = bout_xyt_example_files = stag_location = 'CELL_ZLOW' @pytest.mark.parametrize("stag_location", ["CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"]) def test_from_field_aligned_staggered(self, bout_xyt_example_files, stag_location): dataset_list = bout_xyt_example_files( None, lengths=(3, 3, 4, 8), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05340473a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053368a0e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533c8d480> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534fa4760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534fd7700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f9ba00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533fdee00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533bf76a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ff3760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534577460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f7d900> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535787040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05336ef760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f464a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05345f7760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533bff940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate0-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = ('n', 'T') @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534602fe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534516740> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05355333a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05345831c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535572620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05346f2e60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534686800> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053462e080> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05345d7040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f67be0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05336efe80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535550760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f529e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053574a6e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534008b20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05359f1240> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_parallel[vars_to_interpolate1-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True vars_to_interpolate = Ellipsis @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "vars_to_interpolate", [("n", "T"), pytest.param(..., marks=pytest.mark.long)] ) def test_interpolate_parallel( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, vars_to_interpolate, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_boutdataset.py:652: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f7ce20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______ TestBoutDatasetMethods.test_interpolate_parallel_all_variables_arg ______ self = bout_xyt_example_files = def test_interpolate_parallel_all_variables_arg(self, bout_xyt_example_files): # Check that passing 'variables=...' to interpolate_parallel() does actually # interpolate all the variables dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=1, nype=1, nt=1, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal" ) xbout/tests/test_boutdataset.py:1108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ff0100> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ___________ TestBoutDatasetMethods.test_interpolate_parallel_limiter ___________ self = bout_xyt_example_files = def test_interpolate_parallel_limiter( self, bout_xyt_example_files, ): # This test checks that the regions created in the new high-resolution Dataset by # interpolate_parallel are correct. # This test does not test the accuracy of the parallel interpolation (there are # other tests for that). # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards={"x": 2, "y": 2}, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=True, keep_yboundaries=False, ) xbout/tests/test_boutdataset.py:1163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05345639a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestBoutDatasetMethods.test_integrate_midpoints_slab _____________ self = bout_xyt_example_files = def test_integrate_midpoints_slab(self, bout_xyt_example_files): # Create data dataset_list = bout_xyt_example_files( None, lengths=(4, 100, 110, 120), nxpe=1, nype=1, nt=1, syn_data_type=1 ) > ds = open_boutdataset(dataset_list) xbout/tests/test_boutdataset.py:1193: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ff0760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____ TestBoutDatasetMethods.test_integrate_midpoints_salpha[CELL_CENTRE] ______ self = bout_xyt_example_files = location = 'CELL_CENTRE' @pytest.mark.parametrize( "location", ["CELL_CENTRE", "CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"] ) def test_integrate_midpoints_salpha(self, bout_xyt_example_files, location): # Create data nx = 100 ny = 110 nz = 120 dataset_list = bout_xyt_example_files( None, lengths=(4, nx, ny, nz), nxpe=1, nype=1, nt=1, syn_data_type=1, guards={"x": 2, "y": 2}, ) > ds = open_boutdataset(dataset_list) xbout/tests/test_boutdataset.py:1387: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053457a7a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______ TestBoutDatasetMethods.test_integrate_midpoints_salpha[CELL_XLOW] _______ self = bout_xyt_example_files = location = 'CELL_XLOW' @pytest.mark.parametrize( "location", ["CELL_CENTRE", "CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"] ) def test_integrate_midpoints_salpha(self, bout_xyt_example_files, location): # Create data nx = 100 ny = 110 nz = 120 dataset_list = bout_xyt_example_files( None, lengths=(4, nx, ny, nz), nxpe=1, nype=1, nt=1, syn_data_type=1, guards={"x": 2, "y": 2}, ) > ds = open_boutdataset(dataset_list) xbout/tests/test_boutdataset.py:1387: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534563b20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______ TestBoutDatasetMethods.test_integrate_midpoints_salpha[CELL_YLOW] _______ self = bout_xyt_example_files = location = 'CELL_YLOW' @pytest.mark.parametrize( "location", ["CELL_CENTRE", "CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"] ) def test_integrate_midpoints_salpha(self, bout_xyt_example_files, location): # Create data nx = 100 ny = 110 nz = 120 dataset_list = bout_xyt_example_files( None, lengths=(4, nx, ny, nz), nxpe=1, nype=1, nt=1, syn_data_type=1, guards={"x": 2, "y": 2}, ) > ds = open_boutdataset(dataset_list) xbout/tests/test_boutdataset.py:1387: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535582380> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______ TestBoutDatasetMethods.test_integrate_midpoints_salpha[CELL_ZLOW] _______ self = bout_xyt_example_files = location = 'CELL_ZLOW' @pytest.mark.parametrize( "location", ["CELL_CENTRE", "CELL_XLOW", "CELL_YLOW", "CELL_ZLOW"] ) def test_integrate_midpoints_salpha(self, bout_xyt_example_files, location): # Create data nx = 100 ny = 110 nz = 120 dataset_list = bout_xyt_example_files( None, lengths=(4, nx, ny, nz), nxpe=1, nype=1, nt=1, syn_data_type=1, guards={"x": 2, "y": 2}, ) > ds = open_boutdataset(dataset_list) xbout/tests/test_boutdataset.py:1387: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535556200> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________ TestBoutDatasetMethods.test_interpolate_from_unstructured ___________ self = bout_xyt_example_files = def test_interpolate_from_unstructured(self, bout_xyt_example_files): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, grid="grid", topology="upper-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal" ) xbout/tests/test_boutdataset.py:1733: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053595c1c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestBoutDatasetMethods.test_interpolate_from_unstructured_unstructured_output _ self = bout_xyt_example_files = def test_interpolate_from_unstructured_unstructured_output( self, bout_xyt_example_files ): dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, grid="grid", topology="lower-disconnected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal" ) xbout/tests/test_boutdataset.py:1784: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f56c80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestBoutDatasetMethods.test_interpolate_to_cartesian _____________ self = bout_xyt_example_files = def test_interpolate_to_cartesian(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files( None, lengths=(2, 16, 17, 18), nxpe=1, nype=1, nt=1 ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:1842: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534671780> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ TestBoutDatasetMethods.test_add_cartesian_coordinates _____________ self = bout_xyt_example_files = def test_add_cartesian_coordinates(self, bout_xyt_example_files): dataset_list = bout_xyt_example_files(None, nxpe=1, nype=1, nt=1) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=dataset_list, inputfilepath=None, keep_xboundaries=False ) xbout/tests/test_boutdataset.py:1883: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f764a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________________________ TestSave.test_save_all ____________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_save_all(self, tmp_path_factory, bout_xyt_example_files): # Create data path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=5, nt=1, write_to_disk=True ) # Load it as a boutdataset with pytest.warns(UserWarning): > original = open_boutdataset(datapath=path, inputfilepath=None) xbout/tests/test_boutdataset.py:1953: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053558e0e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________________ TestSave.test_reload_all[None] ________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = geometry = None @pytest.mark.parametrize("geometry", [None, "toroidal"]) def test_reload_all(self, tmp_path_factory, bout_xyt_example_files, geometry): # Create data path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=5, nt=1, grid="grid", write_to_disk=True ) gridpath = path.parent.joinpath("grid.nc") # Load it as a boutdataset if geometry is None: with pytest.warns(UserWarning): > original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=None if geometry is None else gridpath, ) xbout/tests/test_boutdataset.py:1978: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053424a800> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________________ TestSave.test_reload_all[toroidal] ______________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = geometry = 'toroidal' @pytest.mark.parametrize("geometry", [None, "toroidal"]) def test_reload_all(self, tmp_path_factory, bout_xyt_example_files, geometry): # Create data path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=5, nt=1, grid="grid", write_to_disk=True ) gridpath = path.parent.joinpath("grid.nc") # Load it as a boutdataset if geometry is None: with pytest.warns(UserWarning): original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=None if geometry is None else gridpath, ) else: > original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=None if geometry is None else gridpath, ) xbout/tests/test_boutdataset.py:1985: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05341a5840> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ___________________ TestSave.test_save_dtype[False-float64] ____________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = save_dtype = , separate_vars = False @pytest.mark.parametrize("save_dtype", [np.float64, np.float32]) @pytest.mark.parametrize( "separate_vars", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_save_dtype( self, tmp_path_factory, bout_xyt_example_files, save_dtype, separate_vars ): # Create data path = bout_xyt_example_files( tmp_path_factory, nxpe=1, nype=1, nt=1, write_to_disk=True ) # Load it as a boutdataset with pytest.warns(UserWarning): > original = open_boutdataset(datapath=path, inputfilepath=None) xbout/tests/test_boutdataset.py:2035: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c942e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___________________ TestSave.test_save_dtype[False-float32] ____________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = save_dtype = , separate_vars = False @pytest.mark.parametrize("save_dtype", [np.float64, np.float32]) @pytest.mark.parametrize( "separate_vars", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_save_dtype( self, tmp_path_factory, bout_xyt_example_files, save_dtype, separate_vars ): # Create data path = bout_xyt_example_files( tmp_path_factory, nxpe=1, nype=1, nt=1, write_to_disk=True ) # Load it as a boutdataset with pytest.warns(UserWarning): > original = open_boutdataset(datapath=path, inputfilepath=None) xbout/tests/test_boutdataset.py:2035: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c96c20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________________ TestSave.test_save_dtype[True-float64] ____________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = save_dtype = , separate_vars = True @pytest.mark.parametrize("save_dtype", [np.float64, np.float32]) @pytest.mark.parametrize( "separate_vars", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_save_dtype( self, tmp_path_factory, bout_xyt_example_files, save_dtype, separate_vars ): # Create data path = bout_xyt_example_files( tmp_path_factory, nxpe=1, nype=1, nt=1, write_to_disk=True ) # Load it as a boutdataset with pytest.warns(UserWarning): > original = open_boutdataset(datapath=path, inputfilepath=None) xbout/tests/test_boutdataset.py:2035: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533eaae00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________________ TestSave.test_save_dtype[True-float32] ____________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = save_dtype = , separate_vars = True @pytest.mark.parametrize("save_dtype", [np.float64, np.float32]) @pytest.mark.parametrize( "separate_vars", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_save_dtype( self, tmp_path_factory, bout_xyt_example_files, save_dtype, separate_vars ): # Create data path = bout_xyt_example_files( tmp_path_factory, nxpe=1, nype=1, nt=1, write_to_disk=True ) # Load it as a boutdataset with pytest.warns(UserWarning): > original = open_boutdataset(datapath=path, inputfilepath=None) xbout/tests/test_boutdataset.py:2035: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05348be560> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________________ TestSave.test_save_separate_variables _____________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_save_separate_variables(self, tmp_path_factory, bout_xyt_example_files): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=1, nt=1, write_to_disk=True ) # Load it as a boutdataset with pytest.warns(UserWarning): > original = open_boutdataset(datapath=path, inputfilepath=None) xbout/tests/test_boutdataset.py:2063: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05348beec0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________ TestSave.test_reload_separate_variables[None] _________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = geometry = None @pytest.mark.parametrize("geometry", [None, "toroidal"]) def test_reload_separate_variables( self, tmp_path_factory, bout_xyt_example_files, geometry ): if geometry is not None: grid = "grid" else: grid = None path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=1, nt=1, grid=grid, write_to_disk=True ) if grid is not None: gridpath = path.parent.joinpath("grid.nc") else: gridpath = None # Load it as a boutdataset if geometry is None: with pytest.warns(UserWarning): > original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=gridpath, ) xbout/tests/test_boutdataset.py:2104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534844160> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestSave.test_reload_separate_variables[toroidal] _______________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = geometry = 'toroidal' @pytest.mark.parametrize("geometry", [None, "toroidal"]) def test_reload_separate_variables( self, tmp_path_factory, bout_xyt_example_files, geometry ): if geometry is not None: grid = "grid" else: grid = None path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=1, nt=1, grid=grid, write_to_disk=True ) if grid is not None: gridpath = path.parent.joinpath("grid.nc") else: gridpath = None # Load it as a boutdataset if geometry is None: with pytest.warns(UserWarning): original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=gridpath, ) else: > original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=gridpath, ) xbout/tests/test_boutdataset.py:2111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05344d52a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ___________ TestSave.test_reload_separate_variables_time_split[None] ___________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = geometry = None @pytest.mark.parametrize("geometry", [None, "toroidal"]) def test_reload_separate_variables_time_split( self, tmp_path_factory, bout_xyt_example_files, geometry ): if geometry is not None: grid = "grid" else: grid = None path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=1, nt=1, grid=grid, write_to_disk=True ) if grid is not None: gridpath = path.parent.joinpath("grid.nc") else: gridpath = None # Load it as a boutdataset if geometry is None: with pytest.warns(UserWarning): > original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=gridpath, ) xbout/tests/test_boutdataset.py:2151: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053428a4a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________ TestSave.test_reload_separate_variables_time_split[toroidal] _________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = geometry = 'toroidal' @pytest.mark.parametrize("geometry", [None, "toroidal"]) def test_reload_separate_variables_time_split( self, tmp_path_factory, bout_xyt_example_files, geometry ): if geometry is not None: grid = "grid" else: grid = None path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=1, nt=1, grid=grid, write_to_disk=True ) if grid is not None: gridpath = path.parent.joinpath("grid.nc") else: gridpath = None # Load it as a boutdataset if geometry is None: with pytest.warns(UserWarning): original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=gridpath, ) else: > original = open_boutdataset( datapath=path, inputfilepath=None, geometry=geometry, gridfilepath=gridpath, ) xbout/tests/test_boutdataset.py:2158: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534dd3a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________________ TestSaveRestart.test_to_restart[None] _____________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = tind = None @pytest.mark.parametrize("tind", [None, pytest.param(1, marks=pytest.mark.long)]) def test_to_restart(self, tmp_path_factory, bout_xyt_example_files, tind): nxpe = 3 nype = 2 nt = 6 path = bout_xyt_example_files( tmp_path_factory, nxpe=nxpe, nype=nype, nt=1, lengths=[nt, 4, 4, 7], guards={"x": 2, "y": 2}, write_to_disk=True, ) # Load it as a boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(datapath=path) xbout/tests/test_boutdataset.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05345149a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________________ TestSaveRestart.test_to_restart[1] ______________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = tind = 1 @pytest.mark.parametrize("tind", [None, pytest.param(1, marks=pytest.mark.long)]) def test_to_restart(self, tmp_path_factory, bout_xyt_example_files, tind): nxpe = 3 nype = 2 nt = 6 path = bout_xyt_example_files( tmp_path_factory, nxpe=nxpe, nype=nype, nt=1, lengths=[nt, 4, 4, 7], guards={"x": 2, "y": 2}, write_to_disk=True, ) # Load it as a boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(datapath=path) xbout/tests/test_boutdataset.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534597760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________________ TestSaveRestart.test_to_restart_change_npe __________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_to_restart_change_npe(self, tmp_path_factory, bout_xyt_example_files): nxpe_in = 3 nype_in = 2 nxpe = 2 nype = 4 nt = 6 path = bout_xyt_example_files( tmp_path_factory, nxpe=nxpe_in, nype=nype_in, nt=1, lengths=[nt, 4, 4, 7], guards={"x": 2, "y": 2}, write_to_disk=True, ) # Load it as a boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(datapath=path) xbout/tests/test_boutdataset.py:2283: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05348cc400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________ TestSaveRestart.test_to_restart_change_npe_doublenull _____________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = @pytest.mark.long def test_to_restart_change_npe_doublenull( self, tmp_path_factory, bout_xyt_example_files ): nxpe_in = 3 nype_in = 6 nxpe = 1 nype = 12 nt = 6 path = bout_xyt_example_files( tmp_path_factory, nxpe=nxpe_in, nype=nype_in, nt=1, guards={"x": 2, "y": 2}, lengths=(nt, 5, 4, 7), topology="upper-disconnected-double-null", write_to_disk=True, ) # Load it as a boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(datapath=path) xbout/tests/test_boutdataset.py:2356: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534d9f520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ TestSaveRestart.test_to_restart_change_npe_doublenull_expect_fail[npes0] ___ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = npes = (2, 6) @pytest.mark.long @pytest.mark.parametrize("npes", [(2, 6), (3, 4)]) def test_to_restart_change_npe_doublenull_expect_fail( self, tmp_path_factory, bout_xyt_example_files, npes ): nxpe_in = 3 nype_in = 6 nxpe, nype = npes path = bout_xyt_example_files( tmp_path_factory, nxpe=nxpe_in, nype=nype_in, nt=1, guards={"x": 2, "y": 2}, lengths=(6, 5, 4, 7), topology="lower-disconnected-double-null", write_to_disk=True, ) # Load it as a boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(datapath=path) xbout/tests/test_boutdataset.py:2427: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534df6800> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ___ TestSaveRestart.test_to_restart_change_npe_doublenull_expect_fail[npes1] ___ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = npes = (3, 4) @pytest.mark.long @pytest.mark.parametrize("npes", [(2, 6), (3, 4)]) def test_to_restart_change_npe_doublenull_expect_fail( self, tmp_path_factory, bout_xyt_example_files, npes ): nxpe_in = 3 nype_in = 6 nxpe, nype = npes path = bout_xyt_example_files( tmp_path_factory, nxpe=nxpe_in, nype=nype_in, nt=1, guards={"x": 2, "y": 2}, lengths=(6, 5, 4, 7), topology="lower-disconnected-double-null", write_to_disk=True, ) # Load it as a boutdataset with pytest.warns(UserWarning): > ds = open_boutdataset(datapath=path) xbout/tests/test_boutdataset.py:2427: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f82ec0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError __________________________ TestOpen.test_single_file ___________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_single_file(self, tmp_path_factory, bout_xyt_example_files): path = bout_xyt_example_files( tmp_path_factory, nxpe=1, nype=1, nt=1, write_to_disk=True ) with pytest.warns(UserWarning): > actual = open_boutdataset(datapath=path, keep_xboundaries=False) xbout/tests/test_load.py:280: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f54040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________________________ TestOpen.test_squashed_file __________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_squashed_file(self, tmp_path_factory, bout_xyt_example_files): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=3, nt=1, squashed=True, write_to_disk=True ) with pytest.warns(UserWarning): > actual = open_boutdataset(datapath=path, keep_xboundaries=False) xbout/tests/test_load.py:306: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f80760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________ TestOpen.test_squashed_doublenull[False-False] ________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = False, keep_yboundaries = False @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 2, 4, 7), guards={"x": 2, "y": 2}, squashed=True, topology="lower-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533bf6bc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________ TestOpen.test_squashed_doublenull[False-True] _________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = True, keep_yboundaries = False @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 2, 4, 7), guards={"x": 2, "y": 2}, squashed=True, topology="lower-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05340c68c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________ TestOpen.test_squashed_doublenull[True-False] _________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = False, keep_yboundaries = True @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 2, 4, 7), guards={"x": 2, "y": 2}, squashed=True, topology="lower-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533f83a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _________________ TestOpen.test_squashed_doublenull[True-True] _________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = True, keep_yboundaries = True @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 2, 4, 7), guards={"x": 2, "y": 2}, squashed=True, topology="lower-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c5db40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ TestOpen.test_squashed_doublenull_file[False-False] ______________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = False, keep_yboundaries = False @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull_file( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 4, 4, 7), guards={"x": 2, "y": 2}, squashed=True, write_to_disk=True, topology="upper-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:390: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05343cf640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestOpen.test_squashed_doublenull_file[False-True] ______________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = True, keep_yboundaries = False @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull_file( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 4, 4, 7), guards={"x": 2, "y": 2}, squashed=True, write_to_disk=True, topology="upper-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:390: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053551d9c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestOpen.test_squashed_doublenull_file[True-False] ______________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = False, keep_yboundaries = True @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull_file( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 4, 4, 7), guards={"x": 2, "y": 2}, squashed=True, write_to_disk=True, topology="upper-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:390: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053459ba60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ______________ TestOpen.test_squashed_doublenull_file[True-True] _______________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = keep_xboundaries = True, keep_yboundaries = True @pytest.mark.parametrize( "keep_xboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) @pytest.mark.parametrize( "keep_yboundaries", [False, pytest.param(True, marks=pytest.mark.long)] ) def test_squashed_doublenull_file( self, tmp_path_factory, bout_xyt_example_files, keep_xboundaries, keep_yboundaries, ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=6, nt=1, lengths=(6, 4, 4, 7), guards={"x": 2, "y": 2}, squashed=True, write_to_disk=True, topology="upper-disconnected-double-null", ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=path, keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_load.py:390: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05352efa60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________________ TestOpen.test_combine_along_x _________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_combine_along_x(self, tmp_path_factory, bout_xyt_example_files): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=1, nt=1, syn_data_type="stepped", write_to_disk=True, ) with pytest.warns(UserWarning): > actual = open_boutdataset(datapath=path, keep_xboundaries=False) xbout/tests/test_load.py:414: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053430b040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ________________________ TestOpen.test_combine_along_y _________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_combine_along_y(self, tmp_path_factory, bout_xyt_example_files): path = bout_xyt_example_files( tmp_path_factory, nxpe=1, nype=3, nt=1, syn_data_type="stepped", write_to_disk=True, ) with pytest.warns(UserWarning): > actual = open_boutdataset(datapath=path, keep_xboundaries=False) xbout/tests/test_load.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05346add20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ TestOpen.test_combine_along_xy[lengths0-False-False] _____________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = bout_v5 = False, metric_3D = False, lengths = (6, 2, 4, 7) @pytest.mark.parametrize( "bout_v5,metric_3D", [(False, False), (True, False), (True, True)] ) @pytest.mark.parametrize("lengths", [(6, 2, 4, 7), (6, 2, 4, 1)]) def test_combine_along_xy( self, tmp_path_factory, bout_xyt_example_files, bout_v5, metric_3D, lengths ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=3, nt=1, lengths=lengths, syn_data_type="stepped", write_to_disk=True, bout_v5=bout_v5, metric_3D=metric_3D, ) with pytest.warns(UserWarning): > actual = open_boutdataset(datapath=path, keep_xboundaries=False) xbout/tests/test_load.py:497: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534731480> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _____________ TestOpen.test_combine_along_xy[lengths0-True-False] ______________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = bout_v5 = True, metric_3D = False, lengths = (6, 2, 4, 7) @pytest.mark.parametrize( "bout_v5,metric_3D", [(False, False), (True, False), (True, True)] ) @pytest.mark.parametrize("lengths", [(6, 2, 4, 7), (6, 2, 4, 1)]) def test_combine_along_xy( self, tmp_path_factory, bout_xyt_example_files, bout_v5, metric_3D, lengths ): path = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=3, nt=1, lengths=lengths, syn_data_type="stepped", write_to_disk=True, bout_v5=bout_v5, metric_3D=metric_3D, ) with pytest.warns(UserWarning): > actual = open_boutdataset(datapath=path, keep_xboundaries=False) xbout/tests/test_load.py:497: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05345bc3a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ____________________________ TestOpen.test_toroidal ____________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_toroidal(self, tmp_path_factory, bout_xyt_example_files): # actually write these to disk to test the loading fully path = bout_xyt_example_files( tmp_path_factory, nxpe=3, nype=3, nt=1, syn_data_type="stepped", grid="grid", write_to_disk=True, ) > actual = open_boutdataset( datapath=path, geometry="toroidal", gridfilepath=path.parent.joinpath("grid.nc"), ) xbout/tests/test_load.py:555: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05355d3d60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________________________ TestOpen.test_salpha _____________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_salpha(self, tmp_path_factory, bout_xyt_example_files): path = bout_xyt_example_files( tmp_path_factory, nxpe=3, nype=3, nt=1, syn_data_type="stepped", grid="grid", write_to_disk=True, ) > actual = open_boutdataset( datapath=path, geometry="s-alpha", gridfilepath=path.parent.joinpath("grid.nc"), ) xbout/tests/test_load.py:589: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05352299c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying s-alpha geometry conventions ___________________________ TestOpen.test_drop_vars ____________________________ self = tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0'), _retention_count=3, _retention_policy='all') bout_xyt_example_files = def test_drop_vars(self, tmp_path_factory, bout_xyt_example_files): datapath = bout_xyt_example_files( tmp_path_factory, nxpe=4, nype=1, nt=1, syn_data_type="stepped", write_to_disk=True, ) with pytest.warns(UserWarning): > ds = open_boutdataset( datapath=datapath, keep_xboundaries=False, drop_variables=["T"] ) xbout/tests/test_load.py:618: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533ef2200> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05347702e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c2b520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053504dde0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c9ce80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535046fe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534792e60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350e9540> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535082c80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350cb940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e55300> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e719c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ebef80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535023a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eb3f40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e514e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e3fc40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eef3a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350e7f40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e549a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534792ce0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534cfa440> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534cbf3a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534132320> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053505b640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eff3a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350929e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535077760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535107ac0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b17a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b92ce0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b3fca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534be2440> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b27520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e2a320> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b14be0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053510b280> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350dd360> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e69540> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05351086a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ea37c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e66f20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b5e620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e58d60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e233a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e62320> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534bfd4e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eb1a20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eaae60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e68d60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e6da80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ebb1c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c832e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534bc5cc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315cf8e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315e04c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531595300> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315edb40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053157b760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a6f100> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315f9420> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053153b280> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ebb700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053156a8c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350f3760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535088820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535056e00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535083400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ec2b60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ed0ee0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e86620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350ffb20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315c1180> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315b43a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05316031c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e53880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b9c5e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535088940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315d4b80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534f083a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e40fa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c0f6a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315e6680> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e29f00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315163e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ab2e00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053160bb80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315137c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a6a980> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315789a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531583940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e253c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315a2bc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e56aa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e6a9e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b208e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestPlot.test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053154ab60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[0-False-False-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053502bc40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[0-False-False-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b5e080> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[0-False-False-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e97820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[0-False-False-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535025360> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-False-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e97f40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-False-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e7f2e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-False-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534f099c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-False-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b20a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-False-True-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534f09600> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-False-True-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315fe620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-False-True-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b7d840> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-False-True-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05347b6440> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-True-guards0] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ec67a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-True-guards1] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b209a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-True-guards2] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e2e140> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[0-True-True-guards3] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535026e60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[1-False-False-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ba77c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[1-False-False-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e67160> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[1-False-False-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b5cdc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[1-False-False-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b58700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-False-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e7e380> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-False-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05352acd60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-False-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350fcac0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-False-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534bc0460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-False-True-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b759c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-False-True-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534bfc340> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-False-True-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053506a6e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-False-True-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b7e380> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-True-guards0] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535089e40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-True-guards1] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315800a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-True-guards2] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b62500> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[1-True-True-guards3] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eb8220> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[2-False-False-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e685e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[2-False-False-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eb1060> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[2-False-False-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e5f7c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestPlot.test_region_limiter[2-False-False-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315498a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-False-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e85300> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-False-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b9cd60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-False-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ea88e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-False-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534f0bf40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-False-True-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e94f40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-False-True-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b5a6e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-False-True-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535053a60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-False-True-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315acf40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-True-guards0] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b7e6e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-True-guards1] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535025ba0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-True-guards2] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535082f20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestPlot.test_region_limiter[2-True-True-guards3] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 2 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [ 0, pytest.param(1, marks=pytest.mark.long), pytest.param(2, marks=pytest.mark.long), ], ) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 5, 4, 3), nxpe=1, nype=1, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_plot.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b7fdc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-False-guards0] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eecd00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-False-guards1] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315b7820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-False-guards2] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a41cc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-False-guards3] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e169e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[True-False-guards0] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a80a60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[True-False-guards1] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b5b820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[True-False-guards2] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053157a560> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[True-False-guards3] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053154bee0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-True-guards0] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ebfd00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-True-guards1] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535069c60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-True-guards2] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05316001c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_core[False-True-guards3] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ae3220> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_core[True-True-guards0] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a2b5e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_core[True-True-guards1] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05349d69e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_core[True-True-guards2] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053495d2a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_core[True-True-guards3] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_core( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="core", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a4f9a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_sol[False-False-guards0] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05305a7dc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_sol[False-False-guards1] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534943e80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_sol[False-False-guards2] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05310ed5a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_sol[False-False-guards3] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053106b8e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-False-guards0] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b60ca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-False-guards1] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053154cd60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-False-guards2] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053495f820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-False-guards3] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eb9b40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[False-True-guards0] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0533e99300> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[False-True-guards1] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ec3d00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[False-True-guards2] ________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e66500> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[False-True-guards3] ________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b58a60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-True-guards0] _________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053157b520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-True-guards1] _________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e14640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-True-guards2] _________________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05349f3940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________________ TestRegion.test_region_sol[True-True-guards3] _________________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_sol( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note need to use more than (3*MXG,3*MYG) points per output file dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="sol", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350e4460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[0-False-False-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05313ab1c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[0-False-False-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05313d43a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[0-False-False-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05313af760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[0-False-False-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05306e2e60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-False-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a572e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-False-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e67700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-False-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e15d20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-False-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b59ba0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-False-True-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eb8a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-False-True-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eab760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-False-True-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b608e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-False-True-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534eb3ee0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-True-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b25840> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-True-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05310ed360> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-True-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05313fb640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[0-True-True-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True region_guards = 0 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e86a40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[1-False-False-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530669e40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[1-False-False-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05306935e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[1-False-False-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05313bb700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_limiter[1-False-False-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053061a620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-False-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05306614e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-False-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e86860> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-False-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c31600> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-False-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a4f400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-False-True-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531069180> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-False-True-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531581780> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-False-True-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315e2620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-False-True-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ebfe20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-True-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b7ce80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-True-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c8b040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-True-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534b209a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_limiter[1-True-True-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True region_guards = 1 @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize("region_guards", [0, 1]) def test_region_limiter( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, region_guards, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="limiter", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05306e0760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-False-guards0] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530688e80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-False-guards1] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05302f9ea0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-False-guards2] ______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05302523e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-False-guards3] ______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053045d840> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[True-False-guards0] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530461c60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[True-False-guards1] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053024a920> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[True-False-guards2] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ed0340> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[True-False-guards3] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535092680> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-True-guards0] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ed1720> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-True-guards1] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ebb340> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-True-guards2] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05350932e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ______________ TestRegion.test_region_xpoint[False-True-guards3] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ccc820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_xpoint[True-True-guards0] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a2a5c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_xpoint[True-True-guards1] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a631c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_xpoint[True-True-guards2] _______________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053152d4e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______________ TestRegion.test_region_xpoint[True-True-guards3] _______________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_xpoint( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="xpoint", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531603880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-False-guards0] ____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534ebcfa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-False-guards1] ____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05302e2f20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-False-guards2] ____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530496080> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-False-guards3] ____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530146020> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[True-False-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053049b880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[True-False-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05305342e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[True-False-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053495c640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[True-False-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053153c520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-True-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053506af80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-True-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535068880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-True-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a6b100> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ____________ TestRegion.test_region_singlenull[False-True-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05302fa6e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_singlenull[True-True-guards0] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053152c040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_singlenull[True-True-guards1] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534c89240> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_singlenull[True-True-guards2] _____________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a32320> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _____________ TestRegion.test_region_singlenull[True-True-guards3] _____________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_singlenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=4, nt=1, guards=guards, grid="grid", topology="single-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:409: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531025ba0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______ TestRegion.test_region_connecteddoublenull[False-False-guards0] ________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a56b00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______ TestRegion.test_region_connecteddoublenull[False-False-guards1] ________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05301b7100> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______ TestRegion.test_region_connecteddoublenull[False-False-guards2] ________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534abf340> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _______ TestRegion.test_region_connecteddoublenull[False-False-guards3] ________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530790100> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-False-guards0] ________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530292200> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-False-guards1] ________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315a5240> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-False-guards2] ________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530145300> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-False-guards3] ________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e50d00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[False-True-guards0] ________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053032cca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[False-True-guards1] ________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05303c8580> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[False-True-guards2] ________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531438ca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[False-True-guards3] ________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314db640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-True-guards0] _________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053148cca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-True-guards1] _________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531426860> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-True-guards2] _________ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307ab040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions ________ TestRegion.test_region_connecteddoublenull[True-True-guards3] _________ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True @pytest.mark.long @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) def test_region_connecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology="connected-double-null", ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307ba3e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314bba00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307e3820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531438d00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053143e3e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314af880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534a6b3a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314eb220> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053506bee0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0535243d60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05302e0400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053042bc40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053036d240> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531473580> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314172e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531411660> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05215ebca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314fcbe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053039c3a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05315049a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053142a800> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053143f6a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314dad40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307e2a40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314215a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05303eba00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530782aa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307957e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531252140> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053128b640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531285840> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307296c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:885: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521680400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314b8700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521682920> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053143a6e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521697940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05216b2e00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521662fe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531293a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531224d00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300f3a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053004efe0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531243ca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530053760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300a3640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312424a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e5e1a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053074eda0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307fe320> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05216ae620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052164fa60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05303a5c60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531429d20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312854e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05303a7c40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053010b760> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312a9480> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052153d480> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531283a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530797d00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531265360> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314b9ba0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307ffa60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053066e2c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307a8940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312b48e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053076c4c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307e84c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531268b80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300f8700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300992a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05216964a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300732e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05311e6140> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e5e8c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530172620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521609d20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053036be20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531224460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053074e920> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314845e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307d58a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300a56c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531439ae0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530109cc0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307a54e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530078e20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530097940> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530764460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314a2c80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052167ec80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05301ad1e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053127c2e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052160a860> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052164f8e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531448220> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053076e560> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300bcd60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05311e4100> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530339480> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530054460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531171840> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531175720> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300f3880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530777040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531297e20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053076f4c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314ba0e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053114fb80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052153ee00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052167d660> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'lower-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053149f7c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052153c3a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312ba5c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312ab2e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300e3a00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05214eb640> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312f1f00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053001a7a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531264e80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05303e88e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307bac80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531284400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531418ee0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052160bb80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531218e80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531492a40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 0, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300bf520> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530789660> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300342e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521501900> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05214c7820> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f052164c340> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053002ca60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531478d00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053018f9a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531287e20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521600fa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053032ed40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053079dc60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053128bca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531487580> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05311c5720> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312f0f40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531421c60> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307162c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312aae00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300e0fa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053127ace0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531131ea0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05304a6980> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531250460> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053149e860> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531449900> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530773280> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e5d240> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300a1840> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530051240> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530034be0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05214ffa00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521517580> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530072860> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e5c220> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307e8e20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0530729900> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05214c59c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0521670e80> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053128bca0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053001b4c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05311be860> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314fac20> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307801c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314282e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05300e2620> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05312f8f40> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = {'theta': 1, 'x': 1}, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314a2320> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053131aaa0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05303a7400> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307b9180> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05307ec7c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053129b2e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053074fd00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053076eb00> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = False with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053144b1c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053125a9e0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05216aeec0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f053002f6a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = False, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0531270040> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards0] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05215a73a0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards1] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 0}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05211593c0> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards2] _ self = bout_xyt_example_files = guards = {'x': 0, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f05314bb880> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions _ TestRegion.test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards3] _ self = bout_xyt_example_files = guards = {'x': 2, 'y': 2}, keep_xboundaries = True, keep_yboundaries = True with_guards = 1, dnd_type = 'upper-disconnected-double-null' @pytest.mark.parametrize(params_guards, params_guards_values) @pytest.mark.parametrize(params_boundaries, params_boundaries_values) @pytest.mark.parametrize( "with_guards", [0, {"x": 1}, {"theta": 1}, {"x": 1, "theta": 1}, 1] ) @pytest.mark.parametrize( "dnd_type", ["lower-disconnected-double-null", "upper-disconnected-double-null"] ) def test_region_disconnecteddoublenull_get_one_guard( self, bout_xyt_example_files, guards, keep_xboundaries, keep_yboundaries, with_guards, dnd_type, ): # Note using more than MXG x-direction points and MYG y-direction points per # output file ensures tests for whether boundary cells are present do not fail # when using minimal numbers of processors dataset_list, grid_ds = bout_xyt_example_files( None, lengths=(2, 3, 4, 3), nxpe=3, nype=6, nt=1, guards=guards, grid="grid", topology=dnd_type, ) > ds = open_boutdataset( datapath=dataset_list, gridfilepath=grid_ds, geometry="toroidal", keep_xboundaries=keep_xboundaries, keep_yboundaries=keep_yboundaries, ) xbout/tests/test_region.py:1458: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xbout/load.py:370: in open_boutdataset ds = geometries.apply_geometry(ds, geometry, grid=grid) xbout/geometries.py:231: in apply_geometry np.linspace(start=z0, stop=z1, num=nz, endpoint=False), dims=zcoord /usr/lib64/python3.13/site-packages/numpy/_core/function_base.py:183: in linspace y = conv.wrap(y.astype(dtype, copy=False)) /usr/lib/python3.13/site-packages/xarray/core/dataarray.py:4808: in __array_wrap__ new_var = self.variable.__array_wrap__(obj, context, return_scalar) /usr/lib/python3.13/site-packages/xarray/core/variable.py:2316: in __array_wrap__ return Variable(self.dims, obj) /usr/lib/python3.13/site-packages/xarray/core/variable.py:365: in __init__ super().__init__( /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:264: in __init__ self._dims = self._parse_dimensions(dims) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'xarray.core.variable.Variable' object has no attribute '_dims'") raised in repr()] Variable object at 0x7f0534e5f700> dims = () def _parse_dimensions(self, dims: _DimsLike) -> _Dims: dims = (dims,) if isinstance(dims, str) else tuple(dims) if len(dims) != self.ndim: > raise ValueError( f"dimensions {dims} must have the same length as the " f"number of data dimensions, ndim={self.ndim}" ) E ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1 /usr/lib/python3.13/site-packages/xarray/namedarray/core.py:508: ValueError ----------------------------- Captured stdout call ----------------------------- Applying toroidal geometry conventions =============================== warnings summary =============================== xbout/tests/test_against_collect.py: 21 warnings xbout/tests/test_animate.py: 38 warnings xbout/tests/test_boutdataset.py: 19 warnings xbout/tests/test_load.py: 18 warnings /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:813: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. ds, "MXSUB", default=ds.dims["x"] - 2 * mxg, info=info xbout/tests/test_against_collect.py: 21 warnings xbout/tests/test_animate.py: 38 warnings xbout/tests/test_boutdataset.py: 19 warnings xbout/tests/test_load.py: 18 warnings /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:816: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. ds, "MYSUB", default=ds.dims["y"] - 2 * myg, info=info xbout/tests/test_against_collect.py: 21 warnings xbout/tests/test_animate.py: 38 warnings xbout/tests/test_boutdataset.py: 19 warnings xbout/tests/test_load.py: 18 warnings /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:831: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. nx_file = ds.dims["x"] xbout/tests/test_against_collect.py: 21 warnings xbout/tests/test_animate.py: 38 warnings xbout/tests/test_boutdataset.py: 19 warnings xbout/tests/test_load.py: 18 warnings /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:832: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. ny_file = ds.dims["y"] xbout/tests/test_against_collect.py: 5 warnings xbout/tests/test_animate.py: 38 warnings xbout/tests/test_boutdataarray.py: 56 warnings xbout/tests/test_boutdataset.py: 84 warnings xbout/tests/test_geometries.py: 1 warning xbout/tests/test_grid.py: 5 warnings xbout/tests/test_load.py: 26 warnings xbout/tests/test_plot.py: 144 warnings xbout/tests/test_region.py: 304 warnings /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/geometries.py:147: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. nx = updated_ds.dims[xcoord] xbout/tests/test_against_collect.py: 5 warnings xbout/tests/test_animate.py: 38 warnings xbout/tests/test_boutdataarray.py: 56 warnings xbout/tests/test_boutdataset.py: 84 warnings xbout/tests/test_load.py: 27 warnings xbout/tests/test_plot.py: 144 warnings xbout/tests/test_region.py: 304 warnings /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/geometries.py:184: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. nz = updated_ds.dims[zcoord] xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_slab xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_CENTRE] xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_XLOW] xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_YLOW] xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_ZLOW] xbout/tests/test_boutdataset.py::TestSaveRestart::test_from_restart_to_restart xbout/tests/test_grid.py::TestOpenGrid::test_open_grid_extra_dims xbout/tests/test_load.py::TestOpen::test_restarts /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/load.py:350: UserWarning: No geometry type found, no physical coordinates will be added warn("No geometry type found, no physical coordinates will be added") xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths0-True-True] xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths1-False-False] xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths1-True-False] xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths1-True-True] /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/tests/test_load.py:520: UserWarning: rename 't_array' to 't' does not create an index anymore. Try using swap_dims instead or use set_index after rename to create an indexed coordinate. expected = expected.set_coords(["t_array", "dx", "dy", "dz"]).rename( xbout/tests/test_load.py::TestOpen::test_salpha /builddir/build/BUILD/python-xbout-0.3.6-build/xbout-0.3.6/xbout/geometries.py:482: UserWarning: rename 'x' to 'r' does not create an index anymore. Try using swap_dims instead or use set_index after rename to create an indexed coordinate. ds = ds.rename(x="r") -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ============================== slowest durations =============================== 2.91s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_new_collect_indexing_slice 1.57s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_new_collect_indexing_list 1.49s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_new_collect_indexing_int 1.33s call xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths1-True-False] 1.24s call xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths0-True-True] 1.23s call xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths1-True-True] 1.21s call xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe_doublenull_expect_fail[npes0] 1.18s call xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe_doublenull 1.17s call xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths1-False-False] 1.17s call xbout/tests/test_boutdataset.py::TestSave::test_save_all 1.03s call xbout/tests/test_boutdataset.py::TestSave::test_reload_all[None] 0.86s call xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe_doublenull_expect_fail[npes1] 0.86s call xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths0-False-False] 0.84s call xbout/tests/test_boutdataset.py::TestSave::test_reload_all[toroidal] 0.83s call xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths0-True-False] 0.73s call xbout/tests/test_boutdataset.py::TestSaveRestart::test_from_restart_to_restart 0.69s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list 0.67s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmax_list 0.65s setup xbout/tests/test_animate.py::TestAnimate::test_animate1D 0.60s call xbout/tests/test_load.py::TestOpen::test_toroidal 0.57s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_multiple_files_along_xy 0.54s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_nrows 0.54s setup xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls0] 0.54s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmax 0.53s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_subplots_adjust 0.53s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmin 0.52s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_fps 0.52s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls1] 0.52s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_animate_over 0.52s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls3] 0.51s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls0] 0.51s setup xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls3] 0.51s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmin_list 0.51s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_logscale_list 0.51s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls4] 0.51s setup xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls5] 0.51s setup xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls4] 0.50s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_save_as 0.50s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_logscale_float 0.50s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_not_enough_nrowsncols 0.50s setup xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls4] 0.49s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_1d_multiline 0.49s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_titles_list 0.49s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls5] 0.48s setup xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls5] 0.48s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_ncols 0.48s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_logscale 0.48s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls2] 0.48s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards0] 0.48s setup xbout/tests/test_animate.py::TestAnimate::test_animate_list_1d_default 0.47s setup xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls2] 0.47s setup xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls0] 0.47s setup xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls1] 0.47s setup xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls1] 0.47s setup xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls3] 0.46s setup xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls2] 0.46s call xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart[None] 0.46s setup xbout/tests/test_animate.py::TestAnimate::test_animate2D 0.43s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards2] 0.42s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_from_unstructured 0.37s call xbout/tests/test_load.py::TestOpen::test_salpha 0.32s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards0] 0.32s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards2] 0.32s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards3] 0.32s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards0] 0.31s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards2] 0.31s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards1] 0.31s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards1] 0.31s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards2] 0.31s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards3] 0.31s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards3] 0.31s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards1] 0.31s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards1] 0.31s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards3] 0.31s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards0] 0.31s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards2] 0.31s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards1] 0.31s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_from_unstructured_unstructured_output 0.30s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards1] 0.30s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards3] 0.30s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards2] 0.30s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards0] 0.30s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards1] 0.30s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards3] 0.29s call xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart[1] 0.29s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards0] 0.29s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_multiple_files_along_y 0.28s call xbout/tests/test_boutdataset.py::TestSave::test_save_separate_variables 0.27s call xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables[toroidal] 0.27s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel_limiter 0.26s call xbout/tests/test_load.py::TestOpen::test_combine_along_x 0.26s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards3] 0.26s call xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe 0.24s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards3] 0.21s call xbout/tests/test_load.py::TestOpen::test_combine_along_y 0.21s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards3] 0.21s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards1] 0.21s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards0] 0.21s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_multiple_files_along_x 0.21s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards2] 0.20s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards1] 0.20s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards2] 0.20s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards3] 0.20s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards0] 0.20s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_dataset 0.20s call xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards2] 0.20s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards2] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards3] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards1] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards1] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards0] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards0] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards3] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards0] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards1] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards2] 0.19s call xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables_time_split[toroidal] 0.19s call xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards3] 0.18s call xbout/tests/test_load.py::TestOpen::test_drop_vars 0.17s call xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables_time_split[None] 0.16s call xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables[None] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards0] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards0] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards0] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards0] 0.13s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-0-2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards3] 0.13s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-0-0] 0.13s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards3] 0.13s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-2-0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards1] 0.13s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards0] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards3] 0.13s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-2-2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards0] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards0] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards2] 0.13s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards0] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards1] 0.13s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards3] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards1] 0.13s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards0] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards2] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards1] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards2] 0.13s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards1] 0.13s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards1] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards3] 0.13s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards0] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards1] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards3] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards0] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards2] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards2] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards1] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards0] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards2] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards2] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards3] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards2] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards0] 0.12s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_derivatives_doublenull 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards3] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards3] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards1] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards3] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards2] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards3] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards0] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards0] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards1] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards2] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards1] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards1] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards3] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards0] 0.12s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards0] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards2] 0.12s call xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards0] 0.12s call xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards3] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards0] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards3] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards3] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards2] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards0] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards1] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards1] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards2] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards1] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards2] 0.11s call xbout/tests/test_load.py::TestOpen::test_restarts 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards3] 0.11s call xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards0] 0.10s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_single_file 0.09s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[False-False] 0.09s call xbout/tests/test_load.py::TestOpen::test_squashed_file 0.09s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards1] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards2] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards2] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards3] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards0] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards1] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards3] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards2] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards3] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards1] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards0] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards0] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards1] 0.08s call xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[False-float64] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards3] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards2] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards0] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards2] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards3] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards0] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards1] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards2] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards0] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards3] 0.08s call xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards1] 0.07s call xbout/tests/test_fastoutput.py::TestFastOutput::test_open_fastoutput 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards3] 0.07s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_CENTRE] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards3] 0.07s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_singlenull 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards0] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards2] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards1] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards3] 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards3] 0.07s call xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_metadata 0.07s call xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards2] 0.06s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_slab 0.06s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[0-0] 0.06s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-0-2] 0.06s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-0-0] 0.06s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[0-2] 0.06s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[2-0] 0.06s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[2-2] 0.06s call xbout/tests/test_load.py::TestOpen::test_single_file 0.06s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-2-0] 0.06s call xbout/tests/test_boutdataset.py::TestBoutDatasetIsXarrayDataset::test_concat 0.06s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-2-2] 0.06s call xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[True-float32] 0.06s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_get_field_aligned 0.06s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[True-False] 0.06s call xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[False-float32] 0.05s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[False-True] 0.05s call xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[True-float64] 0.05s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[True-True] 0.05s call xbout/tests/test_grid.py::TestOpenGrid::test_open_grid_chunks 0.04s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_YLOW] 0.04s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel 0.04s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_toroidal_points 0.04s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_toroidal_points_list 0.04s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_ZLOW] 0.04s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_XLOW] 0.03s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards3] 0.03s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards0] 0.03s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards2] 0.03s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards1] 0.03s call xbout/tests/test_grid.py::TestOpenGrid::test_open_grid_extra_dims 0.03s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel_all_variables_arg 0.03s call xbout/tests/test_grid.py::TestOpenGrid::test_open_grid_chunks_not_in_grid 0.03s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_ddy 0.03s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core 0.03s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_sol 0.03s call xbout/tests/test_grid.py::TestOpenGrid::test_open_grid 0.02s call xbout/tests/test_load.py::test_set_fci_coords 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards2] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards0] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards1] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards3] 0.02s call xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards1] 0.02s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[False-False] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_ddx 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_add_cartesian_coordinates 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_sol 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-7] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-6] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[3] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[7] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_to_cartesian 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[18] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_ddz 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[2] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-9] 0.02s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-8] 0.02s call xbout/tests/test_grid.py::TestOpenGrid::test_open_grid_apply_geometry 0.01s setup xbout/tests/test_load.py::test_set_fci_coords 0.01s call xbout/tests/test_load.py::TestPathHandling::test_glob_expansion_both[3-111] 0.01s call xbout/tests/test_load.py::TestPathHandling::test_glob_expansion_brackets[3-111] 0.01s call xbout/tests/test_load.py::TestStripMetadata::test_strip_metadata 0.01s call xbout/tests/test_load.py::TestPathHandling::test_glob_expansion_both[121-2] 0.01s call xbout/tests/test_load.py::TestTrim::test_infer_boundaries_2d_parallelization_by_filenum[0-1-1-3-lower_boundaries5-upper_boundaries5] 0.01s call xbout/calc/tests/test_turbulence.py::TestRootMeanSquare::test_reduce_2d_dask 0.01s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[True-False] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[7] 0.01s call xbout/tests/test_load.py::TestTrim::test_trim_timing_info[False] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-8] 0.01s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[False-True] 0.01s call xbout/tests/test_load.py::TestTrim::test_trim_timing_info[True] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[8] 0.01s call xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[True-True] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned_staggered[CELL_ZLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_dask[True] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-8] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned_staggered[CELL_XLOW] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[8] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned_staggered[CELL_YLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[True-CELL_ZLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-8] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[9] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[True-CELL_YLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[False-CELL_XLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-7] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[False-CELL_ZLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[False-CELL_YLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[False-CELL_YLOW] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[9] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_staggered[CELL_XLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-9] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-6] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_dask 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[6] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[True-CELL_ZLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-9] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_dask[False] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_to_cartesian 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[True-CELL_YLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-7] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_staggered[CELL_ZLOW] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[6] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[True-CELL_XLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-9] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetIsXarrayDataset::test_isel 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-6] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[False-CELL_XLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[True-CELL_XLOW] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-7] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[False-CELL_ZLOW] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[7] 0.01s call xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-6] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_staggered[CELL_YLOW] 0.01s call xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_add_cartesian_coordinates (1673 durations < 0.005s hidden. Use -vv to show these durations.) =========================== short test summary info ============================ FAILED xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_single_file FAILED xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_multiple_files_along_x FAILED xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_multiple_files_along_y FAILED xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_multiple_files_along_xy FAILED xbout/tests/test_against_collect.py::TestAccuracyAgainstOldCollect::test_metadata FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_dataset FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-0-0] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-0-2] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-2-0] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[False-2-2] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-0-0] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-0-2] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-2-0] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_remove_yboundaries[True-2-2] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-6] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-7] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-8] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[False-9] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-6] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-7] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-8] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned[True-9] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_dask[False] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_dask[True] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-6] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-7] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-8] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[False-9] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-6] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-7] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-8] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned[True-9] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[False-CELL_XLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[False-CELL_YLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[False-CELL_ZLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[True-CELL_XLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[True-CELL_YLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_to_field_aligned_staggered[True-CELL_ZLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[False-CELL_XLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[False-CELL_YLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[False-CELL_ZLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[True-CELL_XLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[True-CELL_YLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_from_field_aligned_staggered[True-CELL_ZLOW] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[2] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[3] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[7] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_core_change_n[18] FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_sol FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_region_singlenull FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_sol FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_toroidal_points FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_parallel_toroidal_points_list FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_interpolate_to_cartesian FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_add_cartesian_coordinates FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_ddx FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_ddy FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_ddz FAILED xbout/tests/test_boutdataarray.py::TestBoutDataArrayMethods::test_derivatives_doublenull FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetIsXarrayDataset::test_concat FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetIsXarrayDataset::test_isel FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_get_field_aligned FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[0-0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[0-2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[2-0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_remove_yboundaries[2-2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[6] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[7] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[8] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned[9] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_dask FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[6] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[7] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[8] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned[9] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_staggered[CELL_XLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_staggered[CELL_YLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_to_field_aligned_staggered[CELL_ZLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned_staggered[CELL_XLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned_staggered[CELL_YLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_from_field_aligned_staggered[CELL_ZLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-False-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-False-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-False-True-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate0-True-True-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-False-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-False-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-False-True-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards0] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards1] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards2] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel[vars_to_interpolate1-True-True-guards3] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel_all_variables_arg FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_parallel_limiter FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_slab FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_CENTRE] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_XLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_YLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_integrate_midpoints_salpha[CELL_ZLOW] FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_from_unstructured FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_from_unstructured_unstructured_output FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_interpolate_to_cartesian FAILED xbout/tests/test_boutdataset.py::TestBoutDatasetMethods::test_add_cartesian_coordinates FAILED xbout/tests/test_boutdataset.py::TestSave::test_save_all - ValueError:... FAILED xbout/tests/test_boutdataset.py::TestSave::test_reload_all[None] - Val... FAILED xbout/tests/test_boutdataset.py::TestSave::test_reload_all[toroidal] FAILED xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[False-float64] FAILED xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[False-float32] FAILED xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[True-float64] FAILED xbout/tests/test_boutdataset.py::TestSave::test_save_dtype[True-float32] FAILED xbout/tests/test_boutdataset.py::TestSave::test_save_separate_variables FAILED xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables[None] FAILED xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables[toroidal] FAILED xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables_time_split[None] FAILED xbout/tests/test_boutdataset.py::TestSave::test_reload_separate_variables_time_split[toroidal] FAILED xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart[None] FAILED xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart[1] FAILED xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe FAILED xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe_doublenull FAILED xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe_doublenull_expect_fail[npes0] FAILED xbout/tests/test_boutdataset.py::TestSaveRestart::test_to_restart_change_npe_doublenull_expect_fail[npes1] FAILED xbout/tests/test_load.py::TestOpen::test_single_file - ValueError: dim... FAILED xbout/tests/test_load.py::TestOpen::test_squashed_file - ValueError: d... FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[False-False] FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[False-True] FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[True-False] FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull[True-True] FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[False-False] FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[False-True] FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[True-False] FAILED xbout/tests/test_load.py::TestOpen::test_squashed_doublenull_file[True-True] FAILED xbout/tests/test_load.py::TestOpen::test_combine_along_x - ValueError:... FAILED xbout/tests/test_load.py::TestOpen::test_combine_along_y - ValueError:... FAILED xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths0-False-False] FAILED xbout/tests/test_load.py::TestOpen::test_combine_along_xy[lengths0-True-False] FAILED xbout/tests/test_load.py::TestOpen::test_toroidal - ValueError: dimens... FAILED xbout/tests/test_load.py::TestOpen::test_salpha - ValueError: dimensio... FAILED xbout/tests/test_load.py::TestOpen::test_drop_vars - ValueError: dimen... FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-0-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-1-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[lower-disconnected-double-null-2-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-0-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-1-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_disconnecteddoublenull[upper-disconnected-double-null-2-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[0-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[1-True-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-False-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-False-True-guards3] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards0] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards1] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards2] FAILED xbout/tests/test_plot.py::TestPlot::test_region_limiter[2-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_core[True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_sol[True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[0-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_limiter[1-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_xpoint[True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_singlenull[True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_connecteddoublenull[True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[lower-disconnected-double-null-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull[upper-disconnected-double-null-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-0-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards1-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards2-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-with_guards3-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[lower-disconnected-double-null-1-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-0-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards1-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards2-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-with_guards3-True-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-False-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-False-True-guards3] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards0] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards1] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards2] FAILED xbout/tests/test_region.py::TestRegion::test_region_disconnecteddoublenull_get_one_guard[upper-disconnected-double-null-1-True-True-guards3] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate2D - ValueError: ... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls0] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls1] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls2] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls3] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls4] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate2D_controls_arg[controls5] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate1D - ValueError: ... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls0] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls1] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls2] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls3] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls4] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate1D_controls_arg[controls5] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list - ValueErro... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_1d_default ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_1d_multiline ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_animate_over ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_save_as - V... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_fps - Value... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_nrows - Val... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_ncols - Val... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_not_enough_nrowsncols ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_subplots_adjust ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmin - Valu... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmin_list ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmax - Valu... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_vmax_list ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_logscale - ... ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_logscale_float ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_logscale_list ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_titles_list ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls0] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls1] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls2] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls3] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls4] ERROR xbout/tests/test_animate.py::TestAnimate::test_animate_list_controls_arg[controls5] = 609 failed, 144 passed, 5 skipped, 1718 warnings, 38 errors in 175.10s (0:02:55) = error: Bad exit status from /var/tmp/rpm-tmp.7Ta4JL (%check) Bad exit status from /var/tmp/rpm-tmp.7Ta4JL (%check) RPM build errors: Finish: rpmbuild python-xbout-0.3.6-5.fc43.src.rpm Finish: build phase for python-xbout-0.3.6-5.fc43.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1749601066.731059/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names ERROR: Exception(/var/lib/copr-rpmbuild/results/python-xbout-0.3.6-5.fc43.src.rpm) Config(fedora-rawhide-x86_64) 3 minutes 21 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_failure=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot ERROR: Command failed: # /usr/bin/systemd-nspawn -q -M 114c33d60c8e4739acdc219a333a728b -D /var/lib/mock/fedora-rawhide-x86_64-1749601066.731059/root -a -u mockbuild --capability=cap_ipc_lock --rlimit=RLIMIT_NOFILE=10240 --capability=cap_ipc_lock --bind=/tmp/mock-resolv.pexyv78k:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin '--setenv=PROMPT_COMMAND=printf "\033]0;\007"' '--setenv=PS1= \s-\v\$ ' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c '/usr/bin/rpmbuild -ba --noprep --target x86_64 /builddir/build/originals/python-xbout.spec' Copr build error: Build failed