Mock Version: 4.1 Mock Version: 4.1 Mock Version: 4.1 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-seqdiag.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-97460-5984/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-seqdiag.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch Wrote: /builddir/build/SRPMS/python-seqdiag-3.0.0-4.ocs23.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-seqdiag.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-97460-5984/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-seqdiag.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.njQ0dQ + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf seqdiag-3.0.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/seqdiag-3.0.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd seqdiag-3.0.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/drop-setup-inline-svg-is-true-with-multibytes-test.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.DtsuD0 + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd seqdiag-3.0.0 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' /usr/lib/python3.11/site-packages/setuptools/dist.py:771: UserWarning: Usage of dash-separated 'build-base' will not be supported in future versions. Please use the underscore name 'build_base' instead warnings.warn( running build running build_py creating _build creating _build/lib creating _build/lib/seqdiag copying src/seqdiag/command.py -> _build/lib/seqdiag copying src/seqdiag/__init__.py -> _build/lib/seqdiag copying src/seqdiag/metrics.py -> _build/lib/seqdiag copying src/seqdiag/drawer.py -> _build/lib/seqdiag copying src/seqdiag/elements.py -> _build/lib/seqdiag copying src/seqdiag/parser.py -> _build/lib/seqdiag copying src/seqdiag/builder.py -> _build/lib/seqdiag creating _build/lib/seqdiag/utils copying src/seqdiag/utils/__init__.py -> _build/lib/seqdiag/utils creating _build/lib/seqdiag/utils/rst copying src/seqdiag/utils/rst/__init__.py -> _build/lib/seqdiag/utils/rst copying src/seqdiag/utils/rst/nodes.py -> _build/lib/seqdiag/utils/rst copying src/seqdiag/utils/rst/directives.py -> _build/lib/seqdiag/utils/rst running egg_info writing src/seqdiag.egg-info/PKG-INFO writing dependency_links to src/seqdiag.egg-info/dependency_links.txt writing entry points to src/seqdiag.egg-info/entry_points.txt writing requirements to src/seqdiag.egg-info/requires.txt writing top-level names to src/seqdiag.egg-info/top_level.txt reading manifest file 'src/seqdiag.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.gif' under directory 'src' warning: no previously-included files found matching '.drone.io.sh' warning: no previously-included files found matching 'examples/update.sh' adding license file 'LICENSE' writing manifest file 'src/seqdiag.egg-info/SOURCES.txt' /usr/lib/python3.11/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'seqdiag.tests' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'seqdiag.tests' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'seqdiag.tests' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'seqdiag.tests' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.11/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'seqdiag.tests.VLGothic' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'seqdiag.tests.VLGothic' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'seqdiag.tests.VLGothic' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'seqdiag.tests.VLGothic' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.11/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'seqdiag.tests.diagrams' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'seqdiag.tests.diagrams' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'seqdiag.tests.diagrams' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'seqdiag.tests.diagrams' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) creating _build/lib/seqdiag/tests copying src/seqdiag/tests/test_generate_diagram.py -> _build/lib/seqdiag/tests copying src/seqdiag/tests/test_rst_directives.py -> _build/lib/seqdiag/tests creating _build/lib/seqdiag/tests/VLGothic copying src/seqdiag/tests/VLGothic/LICENSE -> _build/lib/seqdiag/tests/VLGothic copying src/seqdiag/tests/VLGothic/LICENSE.en -> _build/lib/seqdiag/tests/VLGothic copying src/seqdiag/tests/VLGothic/LICENSE_E.mplus -> _build/lib/seqdiag/tests/VLGothic copying src/seqdiag/tests/VLGothic/LICENSE_J.mplus -> _build/lib/seqdiag/tests/VLGothic copying src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf -> _build/lib/seqdiag/tests/VLGothic creating _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/alt_block.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/altblock.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/diagram_class.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/diagram_edge_length.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/nested_altblock.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/node_activated.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/node_fontsize.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/node_notes.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/plugin_autoclass.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/separators.diag -> _build/lib/seqdiag/tests/diagrams copying src/seqdiag/tests/diagrams/separators_in_subedge.diag -> _build/lib/seqdiag/tests/diagrams + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.zyNibU + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch ++ dirname /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch + cd seqdiag-3.0.0 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch /usr/lib/python3.11/site-packages/setuptools/dist.py:771: UserWarning: Usage of dash-separated 'build-base' will not be supported in future versions. Please use the underscore name 'build_base' instead warnings.warn( running install /usr/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running install_lib creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11 creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag copying _build/lib/seqdiag/command.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag copying _build/lib/seqdiag/__init__.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag copying _build/lib/seqdiag/metrics.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/rst copying _build/lib/seqdiag/utils/rst/__init__.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/rst copying _build/lib/seqdiag/utils/rst/nodes.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/rst copying _build/lib/seqdiag/utils/rst/directives.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/rst copying _build/lib/seqdiag/utils/__init__.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/plugin_autoclass.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/node_activated.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/separators.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/alt_block.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/node_notes.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/nested_altblock.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/diagram_class.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/diagram_edge_length.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/node_fontsize.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/separators_in_subedge.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams copying _build/lib/seqdiag/tests/diagrams/altblock.diag -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/diagrams creating /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/VLGothic copying _build/lib/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/VLGothic copying _build/lib/seqdiag/tests/VLGothic/LICENSE_E.mplus -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/VLGothic copying _build/lib/seqdiag/tests/VLGothic/LICENSE -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/VLGothic copying _build/lib/seqdiag/tests/VLGothic/LICENSE.en -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/VLGothic copying _build/lib/seqdiag/tests/VLGothic/LICENSE_J.mplus -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/VLGothic copying _build/lib/seqdiag/tests/test_rst_directives.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests copying _build/lib/seqdiag/tests/test_generate_diagram.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests copying _build/lib/seqdiag/drawer.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag copying _build/lib/seqdiag/elements.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag copying _build/lib/seqdiag/parser.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag copying _build/lib/seqdiag/builder.py -> /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/command.py to command.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/__init__.py to __init__.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/metrics.py to metrics.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/rst/__init__.py to __init__.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/rst/nodes.py to nodes.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/rst/directives.py to directives.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/utils/__init__.py to __init__.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/test_rst_directives.py to test_rst_directives.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/tests/test_generate_diagram.py to test_generate_diagram.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/drawer.py to drawer.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/elements.py to elements.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/parser.py to parser.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag/builder.py to builder.cpython-311.pyc writing byte-compilation script '/tmp/tmpyryp6hfu.py' /usr/bin/python3 /tmp/tmpyryp6hfu.py removing /tmp/tmpyryp6hfu.py running install_egg_info running egg_info writing src/seqdiag.egg-info/PKG-INFO writing dependency_links to src/seqdiag.egg-info/dependency_links.txt writing entry points to src/seqdiag.egg-info/entry_points.txt writing requirements to src/seqdiag.egg-info/requires.txt writing top-level names to src/seqdiag.egg-info/top_level.txt reading manifest file 'src/seqdiag.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.gif' under directory 'src' warning: no previously-included files found matching '.drone.io.sh' warning: no previously-included files found matching 'examples/update.sh' adding license file 'LICENSE' writing manifest file 'src/seqdiag.egg-info/SOURCES.txt' Copying src/seqdiag.egg-info to /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/seqdiag-3.0.0-py3.11.egg-info running install_scripts Installing seqdiag script to /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/bin + rm -rfv /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/bin/__pycache__ + install -m 0644 -D seqdiag.1 /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/share/man/man1/seqdiag.1 + /usr/bin/find-debuginfo -j32 --strict-build-id -m -i --build-id-seed 3.0.0-4.ocs23 --unique-debug-suffix -3.0.0-4.ocs23.noarch --unique-debug-src-base python-seqdiag-3.0.0-4.ocs23.noarch -S debugsourcefiles.list /builddir/build/BUILD/seqdiag-3.0.0 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/OpenCloudOS/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/OpenCloudOS/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/OpenCloudOS/brp-mangle-shebangs + /usr/lib/rpm/OpenCloudOS/brp-python-bytecompile '' 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11 using python3.11 + /usr/lib/rpm/OpenCloudOS/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.Y8Gvnd + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd seqdiag-3.0.0 + ALL_TESTS=1 + TOX_TESTENV_PASSENV='*' + PYTHONDONTWRITEBYTECODE=1 + PATH=/builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib64/python3.11/site-packages:/builddir/build/BUILDROOT/python-seqdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages + HOSTNAME=rpmbuild + /usr/bin/python3 -m tox --current-env -q --recreate -e py311 FFF.FFF.FFF.FFF.FFF.FFF.FFF.FFF.FFF.FFF.FFF.EEE.EEEEEEEEEEEEEEEEEEEEEE...EEEEEEEEEEEE.E ====================================================================== ERROR: test_align_option1 (test_rst_directives.TestRstDirectives.test_align_option1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 286, in test_align_option1 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_align_option2 (test_rst_directives.TestRstDirectives.test_align_option2) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 298, in test_align_option2 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_align_option3 (test_rst_directives.TestRstDirectives.test_align_option3) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 310, in test_align_option3 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_alt_option (test_rst_directives.TestRstDirectives.test_alt_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 274, in test_alt_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_call_with_brace (test_rst_directives.TestRstDirectives.test_call_with_brace) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 253, in test_call_with_brace doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_call_without_braces (test_rst_directives.TestRstDirectives.test_call_without_braces) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 263, in test_call_without_braces doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_caption_option (test_rst_directives.TestRstDirectives.test_caption_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 337, in test_caption_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_caption_option_and_align_option (test_rst_directives.TestRstDirectives.test_caption_option_and_align_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 354, in test_caption_option_and_align_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_class_option (test_rst_directives.TestRstDirectives.test_class_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 434, in test_class_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_cleanup (test_rst_directives.TestRstDirectives.test_cleanup) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 75, in wrap func(*args, **kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 78, in test_cleanup publish_doctree(text) File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- WARNING: plugin "autoclass" is already loaded. ignored. --------------------- >> end captured stdout << ---------------------- ====================================================================== ERROR: test_desctable_option (test_rst_directives.TestRstDirectives.test_desctable_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 483, in test_desctable_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_desctable_option_for_edges (test_rst_directives.TestRstDirectives.test_desctable_option_for_edges) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 732, in test_desctable_option_for_edges doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_desctable_option_for_nodes_and_edges (test_rst_directives.TestRstDirectives.test_desctable_option_for_nodes_and_edges) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 775, in test_desctable_option_for_nodes_and_edges doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_desctable_option_using_node_group (test_rst_directives.TestRstDirectives.test_desctable_option_using_node_group) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 532, in test_desctable_option_using_node_group doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_desctable_option_with_numbered (test_rst_directives.TestRstDirectives.test_desctable_option_with_numbered) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 650, in test_desctable_option_with_numbered doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_desctable_option_with_numbered_and_description (test_rst_directives.TestRstDirectives.test_desctable_option_with_numbered_and_description) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 687, in test_desctable_option_with_numbered_and_description doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_desctable_option_with_rest_markups (test_rst_directives.TestRstDirectives.test_desctable_option_with_rest_markups) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 592, in test_desctable_option_with_rest_markups doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_desctable_option_without_description (test_rst_directives.TestRstDirectives.test_desctable_option_without_description) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 519, in test_desctable_option_without_description doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_figclass_option (test_rst_directives.TestRstDirectives.test_figclass_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 471, in test_figclass_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_figwidth_option1 (test_rst_directives.TestRstDirectives.test_figwidth_option1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 447, in test_figwidth_option1 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_figwidth_option2 (test_rst_directives.TestRstDirectives.test_figwidth_option2) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 459, in test_figwidth_option2 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_height_option (test_rst_directives.TestRstDirectives.test_height_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 398, in test_height_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_maxwidth_option (test_rst_directives.TestRstDirectives.test_maxwidth_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 75, in wrap func(*args, **kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 373, in test_maxwidth_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- :1: (WARNING/2) :maxwidth: option is deprecated. Use :width: option. --------------------- >> end captured stdout << ---------------------- ====================================================================== ERROR: test_name_option (test_rst_directives.TestRstDirectives.test_name_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 422, in test_name_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_scale_option (test_rst_directives.TestRstDirectives.test_scale_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 410, in test_scale_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_false (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_false) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 165, in test_setup_inline_svg_is_false doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_true (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_true) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 151, in test_setup_inline_svg_is_true doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 239, in node2image return self.node2image_inline_svg(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 270, in node2image_inline_svg content = drawer.save(size) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_true_and_height_option1 (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_true_and_height_option1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 213, in test_setup_inline_svg_is_true_and_height_option1 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 239, in node2image return self.node2image_inline_svg(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 270, in node2image_inline_svg content = drawer.save(size) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_true_and_height_option2 (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_true_and_height_option2) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 226, in test_setup_inline_svg_is_true_and_height_option2 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 239, in node2image return self.node2image_inline_svg(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 270, in node2image_inline_svg content = drawer.save(size) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_true_and_width_and_height_option (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_true_and_width_and_height_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 240, in test_setup_inline_svg_is_true_and_width_and_height_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 239, in node2image return self.node2image_inline_svg(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 270, in node2image_inline_svg content = drawer.save(size) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_true_and_width_option1 (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_true_and_width_option1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 187, in test_setup_inline_svg_is_true_and_width_option1 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 239, in node2image return self.node2image_inline_svg(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 270, in node2image_inline_svg content = drawer.save(size) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_true_and_width_option2 (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_true_and_width_option2) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 200, in test_setup_inline_svg_is_true_and_width_option2 doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 239, in node2image return self.node2image_inline_svg(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 270, in node2image_inline_svg content = drawer.save(size) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_inline_svg_is_true_but_format_isnt_svg (test_rst_directives.TestRstDirectives.test_setup_inline_svg_is_true_but_format_isnt_svg) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 176, in test_setup_inline_svg_is_true_but_format_isnt_svg doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 346, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_nodoctype_is_false (test_rst_directives.TestRstDirectives.test_setup_nodoctype_is_false) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 117, in test_setup_nodoctype_is_false doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_nodoctype_is_true (test_rst_directives.TestRstDirectives.test_setup_nodoctype_is_true) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 106, in test_setup_nodoctype_is_true doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_noviewbox_is_false (test_rst_directives.TestRstDirectives.test_setup_noviewbox_is_false) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 140, in test_setup_noviewbox_is_false doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_setup_noviewbox_is_true (test_rst_directives.TestRstDirectives.test_setup_noviewbox_is_true) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 129, in test_setup_noviewbox_is_true doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== ERROR: test_width_option (test_rst_directives.TestRstDirectives.test_width_option) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/test_rst_directives.py", line 386, in test_width_option doctree = publish_doctree(text) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 524, in publish_doctree _output, publisher = publish_programmatically( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 722, in publish_programmatically output = publisher.publish(enable_exit_status=enable_exit_status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/core.py", line 234, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 70, in read self.parse() File "/usr/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/__init__.py", line 184, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 54, in decorator return fn(*args) ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 178, in run results[0] = self.node2image(node, diagram) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/rst/directives.py", line 254, in node2image drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 276, in textlinesize size = self.draw.textsize(string, font=None) ^^^^^^^^^^^^^^^^^^ AttributeError: 'ImageDraw' object has no attribute 'textsize' ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/plugin_autoclass.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/plugin_autoclass.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 346, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/plugin_autoclass.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 150, in resizeCanvas self._image = self._image.resize(size, Image.ANTIALIAS) ^^^^^^^^^^^^^^^ AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_activated.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_activated.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 346, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_activated.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 150, in resizeCanvas self._image = self._image.resize(size, Image.ANTIALIAS) ^^^^^^^^^^^^^^^ AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/separators.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 51, in _draw_elements self.separator(sep) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 155, in separator m = self.metrics.separator(sep) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 247, in separator return SeparatorMetrics(separator, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 502, in __init__ size = metrics.textsize(separator.label, font, x2 - x1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/separators.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 51, in _draw_elements self.separator(sep) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 155, in separator m = self.metrics.separator(sep) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 247, in separator return SeparatorMetrics(separator, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 502, in __init__ size = metrics.textsize(separator.label, font, x2 - x1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/separators.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 51, in _draw_elements self.separator(sep) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 155, in separator m = self.metrics.separator(sep) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 91, in _ ret = value(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 247, in separator return SeparatorMetrics(separator, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 502, in __init__ size = metrics.textsize(separator.label, font, x2 - x1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/alt_block.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 64, in __init__ edge.rightnotesize = self.textsize(edge.rightnote, font=font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/alt_block.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 64, in __init__ edge.rightnotesize = self.textsize(edge.rightnote, font=font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/alt_block.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 64, in __init__ edge.rightnotesize = self.textsize(edge.rightnote, font=font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_notes.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_notes.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_notes.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/nested_altblock.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/nested_altblock.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/nested_altblock.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/diagram_class.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/diagram_class.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 346, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/diagram_class.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 150, in resizeCanvas self._image = self._image.resize(size, Image.ANTIALIAS) ^^^^^^^^^^^^^^^ AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/diagram_edge_length.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/diagram_edge_length.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/diagram_edge_length.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_fontsize.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_fontsize.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/node_fontsize.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 98, in build_diagram drawer = DiagramDraw(self.options.type, diagram, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 45, in __init__ self.metrics = self.create_metrics(kwargs.get('basediagram', diagram), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 24, in create_metrics return DiagramMetrics(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 49, in __init__ edge.textwidth, edge.textheight = self.edge_textsize(edge) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 199, in edge_textsize width, height = self.textsize(edge.label, width=width, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/separators_in_subedge.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 51, in _draw_elements self.separator(sep) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 155, in separator m = self.metrics.separator(sep) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 247, in separator return SeparatorMetrics(separator, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 502, in __init__ size = metrics.textsize(separator.label, font, x2 - x1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/separators_in_subedge.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 51, in _draw_elements self.separator(sep) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 155, in separator m = self.metrics.separator(sep) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 247, in separator return SeparatorMetrics(separator, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 502, in __init__ size = metrics.textsize(separator.label, font, x2 - x1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/separators_in_subedge.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 51, in _draw_elements self.separator(sep) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 155, in separator m = self.metrics.separator(sep) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 91, in _ ret = value(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 247, in separator return SeparatorMetrics(separator, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/metrics.py", line 502, in __init__ size = metrics.textsize(separator.label, font, x2 - x1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 202, in textsize return self.drawer.textsize(string, font, maxwidth=width) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/base.py", line 54, in textsize textbox = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/imagedraw/png.py", line 282, in textlinesize size = Size(*ttfont.getsize(string)) ^^^^^^^^^^^^^^ AttributeError: 'FreeTypeFont' object has no attribute 'getsize' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'svg', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/altblock.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 43, in _draw_elements self.altblock(block) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 172, in altblock box = m.textbox ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 367, in __getattr__ return getattr(self.metrics, name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'DiagramMetrics' object has no attribute 'textbox' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/altblock.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 43, in _draw_elements self.altblock(block) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 172, in altblock box = m.textbox ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 367, in __getattr__ return getattr(self.metrics, name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'DiagramMetrics' object has no attribute 'textbox' --------------------- >> end captured stdout << ---------------------- ====================================================================== FAIL: test_generate_diagram.test_generate(, 'png', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/diagrams/altblock.diag', ['-f', '/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/tests/VLGothic/VL-Gothic-Regular.ttf', '--antialias']) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/lib/python3.11/site-packages/blockdiag/tests/utils.py", line 78, in wrap raise AssertionError('Caught error') AssertionError: Caught error -------------------- >> begin captured stdout << --------------------- ---[ stderr ] --- Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/utils/bootstrap.py", line 103, in build_diagram drawer.draw() File "/usr/lib/python3.11/site-packages/blockdiag/drawer.py", line 96, in draw self._draw_elements(**kwargs) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 43, in _draw_elements self.altblock(block) File "/builddir/build/BUILD/seqdiag-3.0.0/src/seqdiag/drawer.py", line 172, in altblock box = m.textbox ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 79, in __getattr__ return self.scale(getattr(self.subject, name), ratio) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/blockdiag/metrics.py", line 367, in __getattr__ return getattr(self.metrics, name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'DiagramMetrics' object has no attribute 'textbox' --------------------- >> end captured stdout << ---------------------- ---------------------------------------------------------------------- Ran 87 tests in 1.392s FAILED (errors=38, failures=33) ERROR: InvocationError for command /usr/bin/nosetests (exited with code 1) ___________________________________ summary ____________________________________ ERROR: py311: commands failed RPM build errors: error: Bad exit status from /var/tmp/rpm-tmp.Y8Gvnd (%check) Bad exit status from /var/tmp/rpm-tmp.Y8Gvnd (%check) Child return code was: 1 EXCEPTION: [Error('Command failed: \n # bash --login -c /usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-seqdiag.spec\n', 1)] Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/mockbuild/trace_decorator.py", line 93, in trace result = func(*args, **kw) File "/usr/lib/python3.10/site-packages/mockbuild/util.py", line 597, in do_with_status raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) mockbuild.exception.Error: Command failed: # bash --login -c /usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-seqdiag.spec