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-actdiag.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-96935-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-actdiag.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-actdiag-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-actdiag.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-96935-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-actdiag.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.Isq9tT + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf actdiag-3.0.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/actdiag-3.0.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd actdiag-3.0.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.pHRHNd + 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 actdiag-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/actdiag copying src/actdiag/command.py -> _build/lib/actdiag copying src/actdiag/__init__.py -> _build/lib/actdiag copying src/actdiag/metrics.py -> _build/lib/actdiag copying src/actdiag/drawer.py -> _build/lib/actdiag copying src/actdiag/elements.py -> _build/lib/actdiag copying src/actdiag/parser.py -> _build/lib/actdiag copying src/actdiag/builder.py -> _build/lib/actdiag creating _build/lib/actdiag/plugins copying src/actdiag/plugins/__init__.py -> _build/lib/actdiag/plugins copying src/actdiag/plugins/autolane.py -> _build/lib/actdiag/plugins creating _build/lib/actdiag/utils copying src/actdiag/utils/__init__.py -> _build/lib/actdiag/utils creating _build/lib/actdiag/utils/rst copying src/actdiag/utils/rst/__init__.py -> _build/lib/actdiag/utils/rst copying src/actdiag/utils/rst/nodes.py -> _build/lib/actdiag/utils/rst copying src/actdiag/utils/rst/directives.py -> _build/lib/actdiag/utils/rst running egg_info writing src/actdiag.egg-info/PKG-INFO writing dependency_links to src/actdiag.egg-info/dependency_links.txt writing entry points to src/actdiag.egg-info/entry_points.txt writing requirements to src/actdiag.egg-info/requires.txt writing top-level names to src/actdiag.egg-info/top_level.txt reading manifest file 'src/actdiag.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/actdiag.egg-info/SOURCES.txt' /usr/lib/python3.11/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'actdiag.tests' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'actdiag.tests' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'actdiag.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 'actdiag.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) creating _build/lib/actdiag/tests copying src/actdiag/tests/test_generate_diagram.py -> _build/lib/actdiag/tests /usr/lib/python3.11/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'actdiag.tests.VLGothic' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'actdiag.tests.VLGothic' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'actdiag.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 'actdiag.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 'actdiag.tests.diagrams' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'actdiag.tests.diagrams' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'actdiag.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 'actdiag.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) copying src/actdiag/tests/test_rst_directives.py -> _build/lib/actdiag/tests creating _build/lib/actdiag/tests/VLGothic copying src/actdiag/tests/VLGothic/LICENSE -> _build/lib/actdiag/tests/VLGothic copying src/actdiag/tests/VLGothic/LICENSE.en -> _build/lib/actdiag/tests/VLGothic copying src/actdiag/tests/VLGothic/LICENSE_E.mplus -> _build/lib/actdiag/tests/VLGothic copying src/actdiag/tests/VLGothic/LICENSE_J.mplus -> _build/lib/actdiag/tests/VLGothic copying src/actdiag/tests/VLGothic/VL-Gothic-Regular.ttf -> _build/lib/actdiag/tests/VLGothic creating _build/lib/actdiag/tests/diagrams copying src/actdiag/tests/diagrams/simple.diag -> _build/lib/actdiag/tests/diagrams + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.KZ6h9n + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch ++ dirname /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch + cd actdiag-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-actdiag-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-actdiag-3.0.0-4.ocs23.noarch/usr creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11 creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag copying _build/lib/actdiag/command.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag copying _build/lib/actdiag/__init__.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag copying _build/lib/actdiag/metrics.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/plugins copying _build/lib/actdiag/plugins/__init__.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/plugins copying _build/lib/actdiag/plugins/autolane.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/plugins creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/rst copying _build/lib/actdiag/utils/rst/__init__.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/rst copying _build/lib/actdiag/utils/rst/nodes.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/rst copying _build/lib/actdiag/utils/rst/directives.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/rst copying _build/lib/actdiag/utils/__init__.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/diagrams copying _build/lib/actdiag/tests/diagrams/simple.diag -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/diagrams creating /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/VLGothic copying _build/lib/actdiag/tests/VLGothic/VL-Gothic-Regular.ttf -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/VLGothic copying _build/lib/actdiag/tests/VLGothic/LICENSE_E.mplus -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/VLGothic copying _build/lib/actdiag/tests/VLGothic/LICENSE -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/VLGothic copying _build/lib/actdiag/tests/VLGothic/LICENSE.en -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/VLGothic copying _build/lib/actdiag/tests/VLGothic/LICENSE_J.mplus -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/VLGothic copying _build/lib/actdiag/tests/test_rst_directives.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests copying _build/lib/actdiag/tests/test_generate_diagram.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests copying _build/lib/actdiag/drawer.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag copying _build/lib/actdiag/elements.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag copying _build/lib/actdiag/parser.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag copying _build/lib/actdiag/builder.py -> /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/command.py to command.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/__init__.py to __init__.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/metrics.py to metrics.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/plugins/__init__.py to __init__.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/plugins/autolane.py to autolane.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/rst/__init__.py to __init__.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/rst/nodes.py to nodes.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/rst/directives.py to directives.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/utils/__init__.py to __init__.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/test_rst_directives.py to test_rst_directives.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/tests/test_generate_diagram.py to test_generate_diagram.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/drawer.py to drawer.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/elements.py to elements.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/parser.py to parser.cpython-311.pyc byte-compiling /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag/builder.py to builder.cpython-311.pyc writing byte-compilation script '/tmp/tmpiva8tk81.py' /usr/bin/python3 /tmp/tmpiva8tk81.py removing /tmp/tmpiva8tk81.py running install_egg_info running egg_info writing src/actdiag.egg-info/PKG-INFO writing dependency_links to src/actdiag.egg-info/dependency_links.txt writing entry points to src/actdiag.egg-info/entry_points.txt writing requirements to src/actdiag.egg-info/requires.txt writing top-level names to src/actdiag.egg-info/top_level.txt reading manifest file 'src/actdiag.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.gif' under directory 'src' adding license file 'LICENSE' writing manifest file 'src/actdiag.egg-info/SOURCES.txt' warning: no previously-included files found matching '.drone.io.sh' warning: no previously-included files found matching 'examples/update.sh' Copying src/actdiag.egg-info to /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib/python3.11/site-packages/actdiag-3.0.0-py3.11.egg-info running install_scripts Installing actdiag script to /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/bin + rm -rfv /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/bin/__pycache__ + install -m 0644 -D actdiag.1 /builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/share/man/man1/actdiag.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-actdiag-3.0.0-4.ocs23.noarch -S debugsourcefiles.list /builddir/build/BUILD/actdiag-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-actdiag-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.Cirn7L + 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 actdiag-3.0.0 + ALL_TESTS=1 + TOX_TESTENV_PASSENV='*' + PYTHONDONTWRITEBYTECODE=1 + PATH=/builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-actdiag-3.0.0-4.ocs23.noarch/usr/lib64/python3.11/site-packages:/builddir/build/BUILDROOT/python-actdiag-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.EEE.EEEEEEEEEEEEEEEEEEEEE...EEEEEEEEEEEE.E ====================================================================== ERROR: test_align_option1 (test_rst_directives.TestRstDirectives.test_align_option1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 293, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 305, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 317, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 281, 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_braces (test_rst_directives.TestRstDirectives.test_call_with_braces) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 260, in test_call_with_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_call_without_braces (test_rst_directives.TestRstDirectives.test_call_without_braces) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 270, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 344, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 361, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 440, 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/actdiag-3.0.0/src/actdiag/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 (test_rst_directives.TestRstDirectives.test_desctable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 489, in test_desctable 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 676, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 719, 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_with_numbered (test_rst_directives.TestRstDirectives.test_desctable_option_with_numbered) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 594, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 631, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 536, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 525, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 477, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 453, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 465, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 404, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 380, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 428, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 416, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 166, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 152, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 216, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 230, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 245, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 188, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 202, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 177, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 118, 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/actdiag-3.0.0/src/actdiag/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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 141, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 130, 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/actdiag-3.0.0/src/actdiag/tests/test_rst_directives.py", line 392, 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/actdiag-3.0.0/src/actdiag/tests/diagrams/simple.diag', ['-f', '/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/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/actdiag-3.0.0/src/actdiag/tests/diagrams/simple.diag', ['-f', '/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/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/actdiag-3.0.0/src/actdiag/tests/diagrams/simple.diag', ['-f', '/builddir/build/BUILD/actdiag-3.0.0/src/actdiag/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 << ---------------------- ---------------------------------------------------------------------- Ran 46 tests in 0.541s FAILED (errors=37, failures=3) ERROR: InvocationError for command /usr/bin/nosetests (exited with code 1) ___________________________________ summary ____________________________________ ERROR: py311: commands failed error: Bad exit status from /var/tmp/rpm-tmp.Cirn7L (%check) Bad exit status from /var/tmp/rpm-tmp.Cirn7L (%check) RPM build errors: 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-actdiag.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-actdiag.spec