sphinxext-opengraph
sphinxext-opengraph copied to clipboard
0.9.1: pytest fails in more than half units becuse test suite cannot find sphinxext/opengraph/_static/Roboto-Flex.ttf
I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
-
python3 -sBm build -w --no-isolation
- because I'm calling
build
with--no-isolation
I'm using during all processes only locally installed modules - install .whl file in </install/prefix> using
installer
module - run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
- build is performed in env which is
cut off from access to the public network
(pytest is executed with-m "not network"
)
List of installed modules in build env:
Package Version
----------------------------- -----------
alabaster 0.7.16
Babel 2.14.0
beautifulsoup4 4.12.3
build 1.2.1
charset-normalizer 3.3.2
contourpy 1.2.1
cycler 0.12.1
docutils 0.20.1
exceptiongroup 1.1.3
fonttools 4.51.0
idna 3.7
imagesize 1.4.1
importlib_metadata 7.1.0
iniconfig 2.0.0
installer 0.7.0
Jinja2 3.1.3
kiwisolver 1.4.5
markdown-it-py 3.0.0
MarkupSafe 2.1.5
matplotlib 3.8.4
mdit-py-plugins 0.4.0
mdurl 0.1.2
myst-parser 2.0.0
numpy 1.26.5
olefile 0.47
packaging 24.0
pillow 10.3.0
pluggy 1.4.0
Pygments 2.17.2
pyparsing 3.1.2
pyproject_hooks 1.0.0
pytest 8.1.1
python-dateutil 2.9.0.post0
PyYAML 6.0.1
requests 2.31.0
setuptools 69.4.0
setuptools-scm 8.0.4
snowballstemmer 2.2.0
soupsieve 2.5
Sphinx 7.2.6
sphinx_design 0.5.0
sphinxcontrib-applehelp 1.0.8
sphinxcontrib-devhelp 1.0.6
sphinxcontrib-htmlhelp 2.0.5
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 1.0.7
sphinxcontrib-serializinghtml 1.1.10
tokenize_rt 5.2.0
tomli 2.0.1
typing_extensions 4.11.0
urllib3 2.2.1
wheel 0.43.0
zipp 3.18.1
Please let me know if you need more details or want me to perform some diagnostics.
Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network'
============================= test session starts ==============================
platform linux -- Python 3.10.14, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/tkloczko/rpmbuild/BUILD/sphinxext-opengraph-0.9.1
collected 38 items
tests/test_options.py EEEEEE..E.EEEEE...EEEEEEEEEEE...EFF.EE [100%]
==================================== ERRORS ====================================
________________________ ERROR at setup of test_simple _________________________
self = <sphinx.events.EventManager object at 0x7fc13e5fdf30>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fc13e5fdf30>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_________________ ERROR at setup of test_meta_name_description _________________
self = <sphinx.events.EventManager object at 0x7fc13e4cb100>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fc13e4cb100>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_____________ ERROR at setup of test_meta_name_manual_description ______________
self = <sphinx.events.EventManager object at 0x7fc13e4c95a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d...atoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <meta...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fc13e4c95a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d...atoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <meta...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
____________ ERROR at setup of test_meta_name_manual_og_description ____________
self = <sphinx.events.EventManager object at 0x7fbfb7adb100>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7adb100>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_______________________ ERROR at setup of test_site_url ________________________
self = <sphinx.events.EventManager object at 0x7fbfb7c4d5a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7c4d5a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
______________________ ERROR at setup of test_dirhtml_url ______________________
self = <sphinx.events.EventManager object at 0x7fbfb7b7ec80>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d...rius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'dirhtml', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='dirhtml'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7b7ec80>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d...rius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'dirhtml', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
___________________ ERROR at setup of test_social_cards_svg ____________________
self = <sphinx.events.EventManager object at 0x7fbfb802dcc0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb802dcc0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
__________________ ERROR at setup of test_image_social_cards ___________________
self = <sphinx.events.EventManager object at 0x7fbfb7d5c970>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7d5c970>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_________________________ ERROR at setup of test_type __________________________
self = <sphinx.events.EventManager object at 0x7fbfb8028df0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '', 'builder': 'html', ...}, <document: >)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb8028df0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '', 'builder': 'html', ...}, <document: >)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
__________________ ERROR at setup of test_description_length ___________________
self = <sphinx.events.EventManager object at 0x7fbfb8027790>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb8027790>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_______________________ ERROR at setup of test_site_name _______________________
self = <sphinx.events.EventManager object at 0x7fbfb8027880>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb8027880>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
___________________ ERROR at setup of test_site_name_project ___________________
self = <sphinx.events.EventManager object at 0x7fbfb7b1ecb0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7b1ecb0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
___________________ ERROR at setup of test_skip_admonitions ____________________
self = <sphinx.events.EventManager object at 0x7fbfb7b7caf0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<div class="admo...his is text.</p>\n', 'builder': 'html', ...}, <document: <attention...><caution...><danger...><error...><importan ...>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7b7caf0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<div class="admo...his is text.</p>\n', 'builder': 'html', ...}, <document: <attention...><caution...><danger...><error...><importan ...>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
___________________ ERROR at setup of test_skip_first_title ____________________
self = <sphinx.events.EventManager object at 0x7fbfb7d798a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<section id="a-t...mple text.</p>\n</section>\n', 'builder': 'html', ...}, <document: <section "a title"...><section "another title"...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7d798a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<section id="a-t...mple text.</p>\n</section>\n', 'builder': 'html', ...}, <document: <section "a title"...><section "another title"...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
________________ ERROR at setup of test_skip_title_punctuation _________________
self = <sphinx.events.EventManager object at 0x7fbfb7c32aa0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<section id="a-t...mple text.</p>\n</section>\n', 'builder': 'html', ...}, <document: <section "a title"...><section "another title"...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7c32aa0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<section id="a-t...mple text.</p>\n</section>\n', 'builder': 'html', ...}, <document: <section "a title"...><section "another title"...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_________________ ERROR at setup of test_remove_double_spacing _________________
self = <sphinx.events.EventManager object at 0x7fbfb7db1a20>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Example sentence 1. Example sentence 2.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7db1a20>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Example sentence 1. Example sentence 2.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
___________________ ERROR at setup of test_list_punctuation ____________________
self = <sphinx.events.EventManager object at 0x7fbfb7c32d70>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul class="simpl...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7c32d70>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul class="simpl...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
________________ ERROR at setup of test_nested_list_punctuation ________________
self = <sphinx.events.EventManager object at 0x7fbfb7db2980>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7db2980>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_____________________ ERROR at setup of test_skip_comments _____________________
self = <sphinx.events.EventManager object at 0x7fbfb7dd4a90>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>This is text.</p>\n', 'builder': 'html', ...}, <document: <comment...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7dd4a90>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>This is text.</p>\n', 'builder': 'html', ...}, <document: <comment...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
______________________ ERROR at setup of test_custom_tags ______________________
self = <sphinx.events.EventManager object at 0x7fbfb802e4a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb802e4a0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_______________________ ERROR at setup of test_skip_raw ________________________
self = <sphinx.events.EventManager object at 0x7fbfb78a9c90>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>This text sho...p>This text should also be included.</p>\n', 'builder': 'html', ...}, <document: <paragraph...><raw...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb78a9c90>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>This text sho...p>This text should also be included.</p>\n', 'builder': 'html', ...}, <document: <paragraph...><raw...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
____________________ ERROR at setup of test_skip_code_block ____________________
self = <sphinx.events.EventManager object at 0x7fbfb7a84f70>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>This text sho...t should also be included.</p>\n', 'builder': 'html', ...}, <document: <paragraph...><literal_block...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7a84f70>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>This text sho...t should also be included.</p>\n', 'builder': 'html', ...}, <document: <paragraph...><literal_block...><paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
____________________ ERROR at setup of test_quotation_marks ____________________
self = <sphinx.events.EventManager object at 0x7fbfb802fd90>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>"This te...as well "while this is once again in quotations"</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb802fd90>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>"This te...as well "while this is once again in quotations"</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
____________________ ERROR at setup of test_arbitrary_tags _____________________
self = <sphinx.events.EventManager object at 0x7fbfb80288e0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb80288e0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_________________ ERROR at setup of test_no_configuration_html _________________
self = <sphinx.events.EventManager object at 0x7fbfb7b1f070>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7b1f070>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
_______________ ERROR at setup of test_no_configuration_dirhtml ________________
self = <sphinx.events.EventManager object at 0x7fbfb7d5f7f0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...i>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'dirhtml', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='dirhtml'>
@pytest.fixture()
def content(app):
> app.build()
tests/conftest.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7d5f7f0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...i>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'dirhtml', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
=================================== FAILURES ===================================
______________________________ test_rtd_override _______________________________
self = <sphinx.events.EventManager object at 0x7fbfb7b543d0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fbfb7b57700>
@pytest.mark.sphinx("html", testroot="simple")
def test_rtd_override(app: Sphinx, monkeypatch):
monkeypatch.setenv("READTHEDOCS", "True")
app.config.html_baseurl = "https://failure.com/en/latest/"
> app.build()
tests/test_options.py:293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7b543d0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<p>Lorem ipsum d... varius natoque penatibus et magnis dis parturient mauris.</p>\n', 'builder': 'html', ...}, <document: <paragraph...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
--------------------------- Captured stdout teardown ---------------------------
# testroot: root
# builder: html
# srcdir: /tmp/pytest-of-tkloczko/pytest-49/simple
# outdir: /tmp/pytest-of-tkloczko/pytest-49/simple/_build/html
# status:
Running Sphinx v7.2.6
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 1 source files that are out of date
updating environment: [new config] 1 added, 0 changed, 0 removed
reading sources... [100%] index
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets... copying static files... done
copying extra files... done
done
writing output... [100%] index
# warning:
WARNING: [Social card]: image_mini file doesn't exist, skipping...
________________________________ test_rtd_valid ________________________________
self = <sphinx.events.EventManager object at 0x7fbfb7b2b8e0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
> results.append(listener.handler(self.app, *args))
/usr/lib/python3.10/site-packages/sphinx/events.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:266: in html_page_context
context["metatags"] += get_tags(app, context, doctree, app.config)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/__init__.py:176: in get_tags
image_path = create_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:122: in create_social_card
plt_objects = render_social_card(
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:157: in render_social_card
) = create_social_card_objects(**kwargs_fig)
../../BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/socialcards.py:190: in create_social_card_objects
matplotlib.font_manager.fontManager.addfont(path_font)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.font_manager.FontManager object at 0x7fbfb85c2e60>
path = '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
def addfont(self, path):
"""
Cache the properties of the font at *path* to make it available to the
`FontManager`. The type of font is inferred from the path suffix.
Parameters
----------
path : str or path-like
Notes
-----
This method is useful for adding a custom font without installing it in
your operating system. See the `FontManager` singleton instance for
usage and caveats about this function.
"""
# Convert to string in case of a path as
# afmFontProperty and FT2Font expect this
path = os.fsdecode(path)
if Path(path).suffix.lower() == ".afm":
with open(path, "rb") as fh:
font = _afm.AFM(fh)
prop = afmFontProperty(path, font)
self.afmlist.append(prop)
else:
> font = ft2font.FT2Font(path)
E FileNotFoundError: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf'
/usr/lib64/python3.10/site-packages/matplotlib/font_manager.py:1076: FileNotFoundError
The above exception was the direct cause of the following exception:
app = <SphinxTestApp buildername='html'>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fbfb7b2a080>
@pytest.mark.sphinx("html", testroot="rtd-default")
def test_rtd_valid(app: Sphinx, monkeypatch):
monkeypatch.setenv("READTHEDOCS", "True")
app.config.html_baseurl = "https://failure.com/en/latest/"
> app.build()
tests/test_options.py:304:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/sphinx/testing/util.py:147: in build
super().build(force_all, filenames)
/usr/lib/python3.10/site-packages/sphinx/application.py:355: in build
self.builder.build_update()
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:293: in build_update
self.build(to_build,
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:363: in build
self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:571: in write
self._write_serial(sorted(docnames))
/usr/lib/python3.10/site-packages/sphinx/builders/__init__.py:581: in _write_serial
self.write_doc(docname, doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:655: in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
/usr/lib/python3.10/site-packages/sphinx/builders/html/__init__.py:1107: in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
/usr/lib/python3.10/site-packages/sphinx/application.py:492: in emit_firstresult
return self.events.emit_firstresult(event, *args,
/usr/lib/python3.10/site-packages/sphinx/events.py:118: in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sphinx.events.EventManager object at 0x7fbfb7b2b8e0>
name = 'html-page-context', allowed_exceptions = ()
args = ('index', 'page.html', {'alabaster_version': '0.7.16', 'alabaster_version_info': (0, 7, 16), 'body': '<ul>\n<li><p>Ite...</li>\n<li><p>Item 3</p></li>\n<li><p>Item 4</p></li>\n</ul>\n', 'builder': 'html', ...}, <document: <bullet_list...>>)
results = [None, None, None]
listeners = [EventListener(id=10, handler=<function setup_resource_paths at 0x7fc13e1f5990>, priority=500), EventListener(id=11, h...c13db0d6c0>, priority=500), EventListener(id=60, handler=<function html_page_context at 0x7fbfb810bc70>, priority=500)]
def emit(self, name: str, *args: Any,
allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
"""Emit a Sphinx event."""
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
listeners = sorted(self.listeners[name], key=attrgetter("priority"))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
except allowed_exceptions:
# pass through the errors specified as *allowed_exceptions*
raise
except SphinxError:
raise
except Exception as exc:
if self.app.pdb:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
> raise ExtensionError(__("Handler %r for event %r threw an exception") %
(listener.handler, name), exc, modname=modname) from exc
E sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fbfb810bc70> for event 'html-page-context' threw an exception (exception: [Errno 2] No such file or directory: '/home/tkloczko/rpmbuild/BUILDROOT/python-sphinxext-opengraph-0.9.1-2.fc37.x86_64/usr/lib/python3.10/site-packages/sphinxext/opengraph/_static/Roboto-Flex.ttf')
/usr/lib/python3.10/site-packages/sphinx/events.py:108: ExtensionError
--------------------------- Captured stdout teardown ---------------------------
# testroot: root
# builder: html
# srcdir: /tmp/pytest-of-tkloczko/pytest-49/rtd-default
# outdir: /tmp/pytest-of-tkloczko/pytest-49/rtd-default/_build/html
# status:
Running Sphinx v7.2.6
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 1 source files that are out of date
updating environment: [new config] 1 added, 0 changed, 0 removed
reading sources... [100%] index
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets... copying static files... done
copying extra files... done
done
writing output... [100%] index
# warning:
WARNING: [Social card]: image_mini file doesn't exist, skipping...
=============================== warnings summary ===============================
tests/conftest.py:3
/home/tkloczko/rpmbuild/BUILD/sphinxext-opengraph-0.9.1/tests/conftest.py:3: RemovedInSphinx90Warning: 'sphinx.testing.path' is deprecated. Use 'os.path' or 'pathlib' instead.
from sphinx.testing.path import path
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
ERROR tests/test_options.py::test_simple - sphinx.errors.ExtensionError: Hand...
ERROR tests/test_options.py::test_meta_name_description - sphinx.errors.Exten...
ERROR tests/test_options.py::test_meta_name_manual_description - sphinx.error...
ERROR tests/test_options.py::test_meta_name_manual_og_description - sphinx.er...
ERROR tests/test_options.py::test_site_url - sphinx.errors.ExtensionError: Ha...
ERROR tests/test_options.py::test_dirhtml_url - sphinx.errors.ExtensionError:...
ERROR tests/test_options.py::test_social_cards_svg - sphinx.errors.ExtensionE...
ERROR tests/test_options.py::test_image_social_cards - sphinx.errors.Extensio...
ERROR tests/test_options.py::test_type - sphinx.errors.ExtensionError: Handle...
ERROR tests/test_options.py::test_description_length - sphinx.errors.Extensio...
ERROR tests/test_options.py::test_site_name - sphinx.errors.ExtensionError: H...
ERROR tests/test_options.py::test_site_name_project - sphinx.errors.Extension...
ERROR tests/test_options.py::test_skip_admonitions - sphinx.errors.ExtensionE...
ERROR tests/test_options.py::test_skip_first_title - sphinx.errors.ExtensionE...
ERROR tests/test_options.py::test_skip_title_punctuation - sphinx.errors.Exte...
ERROR tests/test_options.py::test_remove_double_spacing - sphinx.errors.Exten...
ERROR tests/test_options.py::test_list_punctuation - sphinx.errors.ExtensionE...
ERROR tests/test_options.py::test_nested_list_punctuation - sphinx.errors.Ext...
ERROR tests/test_options.py::test_skip_comments - sphinx.errors.ExtensionErro...
ERROR tests/test_options.py::test_custom_tags - sphinx.errors.ExtensionError:...
ERROR tests/test_options.py::test_skip_raw - sphinx.errors.ExtensionError: Ha...
ERROR tests/test_options.py::test_skip_code_block - sphinx.errors.ExtensionEr...
ERROR tests/test_options.py::test_quotation_marks - sphinx.errors.ExtensionEr...
ERROR tests/test_options.py::test_arbitrary_tags - sphinx.errors.ExtensionErr...
ERROR tests/test_options.py::test_no_configuration_html - sphinx.errors.Exten...
ERROR tests/test_options.py::test_no_configuration_dirhtml - sphinx.errors.Ex...
FAILED tests/test_options.py::test_rtd_override - sphinx.errors.ExtensionErro...
FAILED tests/test_options.py::test_rtd_valid - sphinx.errors.ExtensionError: ...
============== 2 failed, 10 passed, 1 warning, 26 errors in 7.68s ==============
And indeed that .ttf fornt file is not included in generated by pep517 build procedure .whl archive
[tkloczko@pers-jacek dist]$ unzip -l sphinxext_opengraph-0.9.1-py3-none-any.whl
Archive: sphinxext_opengraph-0.9.1-py3-none-any.whl
Length Date Time Name
--------- ---------- ----- ----
9686 12-14-2023 11:55 sphinxext/opengraph/__init__.py
3910 12-14-2023 11:55 sphinxext/opengraph/descriptionparser.py
748 12-14-2023 11:55 sphinxext/opengraph/metaparser.py
10246 12-14-2023 11:55 sphinxext/opengraph/socialcards.py
811 12-14-2023 11:55 sphinxext/opengraph/titleparser.py
1477 04-15-2024 10:14 sphinxext_opengraph-0.9.1.dist-info/LICENSE.md
6499 04-15-2024 10:14 sphinxext_opengraph-0.9.1.dist-info/METADATA
92 04-15-2024 10:14 sphinxext_opengraph-0.9.1.dist-info/WHEEL
20 04-15-2024 10:14 sphinxext_opengraph-0.9.1.dist-info/top_level.txt
905 04-15-2024 10:14 sphinxext_opengraph-0.9.1.dist-info/RECORD
--------- -------
34394 10 files
``
Starting from a fresh git clone on macOS, it adds the .ttf for me when I create the wheel:
❯ python3 --version
Python 3.12.3
❯ python3 -m build --version
build 1.0.3 (/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/build)
❯ python3 -sBm build -w --no-isolation
* Getting build dependencies for wheel...
* Building wheel...
[04/15/24 14:16:33] WARNING toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section' pyproject_reading.py:42
running bdist_wheel
running build
running build_py
copying sphinxext/opengraph/metaparser.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/__init__.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/descriptionparser.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/titleparser.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/socialcards.py -> build/lib/sphinxext/opengraph
running egg_info
writing sphinxext_opengraph.egg-info/PKG-INFO
writing dependency_links to sphinxext_opengraph.egg-info/dependency_links.txt
writing requirements to sphinxext_opengraph.egg-info/requires.txt
writing top-level names to sphinxext_opengraph.egg-info/top_level.txt
adding license file 'LICENSE.md'
writing manifest file 'sphinxext_opengraph.egg-info/SOURCES.txt'
/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'sphinxext/opengraph._static' is absent from the `packages` configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'sphinxext/opengraph._static' as an importable package[^1],
but it is absent from setuptools' `packages` configuration.
This leads to an ambiguous overall configuration. If you want to distribute this
package, please make sure that 'sphinxext/opengraph._static' is explicitly added
to the `packages` configuration field.
Alternatively, you can also rely on setuptools' discovery methods
(for example by using `find_namespace_packages(...)`/`find_namespace:`
instead of `find_packages(...)`/`find:`).
You can read more about "package discovery" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
If you don't want 'sphinxext/opengraph._static' to be distributed and are
already explicitly excluding 'sphinxext/opengraph._static' via
`find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
you can try to use `exclude_package_data`, or `include-package-data=False` in
combination with a more fine grained `package-data` configuration.
You can read more about "package data files" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/datafiles.html
[^1]: For Python, any directory (with suitable naming) can be imported,
even if it does not contain any `.py` files.
On the other hand, currently there is no concept of package data
directory, all directories are treated like packages.
********************************************************************************
!!
check.warn(importable)
copying sphinxext/opengraph/_static/Roboto-Flex.ttf -> build/lib/sphinxext/opengraph/_static
copying sphinxext/opengraph/_static/sphinx-logo-shadow.png -> build/lib/sphinxext/opengraph/_static
installing to build/bdist.macosx-10.9-universal2/wheel
running install
running install_lib
creating build/bdist.macosx-10.9-universal2/wheel
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/metaparser.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/__init__.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph/_static
copying build/lib/sphinxext/opengraph/_static/Roboto-Flex.ttf -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph/_static
copying build/lib/sphinxext/opengraph/_static/sphinx-logo-shadow.png -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph/_static
copying build/lib/sphinxext/opengraph/descriptionparser.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/titleparser.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/socialcards.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
running install_egg_info
Copying sphinxext_opengraph.egg-info to build/bdist.macosx-10.9-universal2/wheel/sphinxext_opengraph-0.9.2.dev1+g1da6c73-py3.12.egg-info
running install_scripts
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/WHEEL
creating '/private/tmp/sphinxext-opengraph/dist/.tmp-7cgna2p9/sphinxext_opengraph-0.9.2.dev1+g1da6c73-py3-none-any.whl' and adding 'build/bdist.macosx-10.9-universal2/wheel' to it
adding 'sphinxext/opengraph/__init__.py'
adding 'sphinxext/opengraph/descriptionparser.py'
adding 'sphinxext/opengraph/metaparser.py'
adding 'sphinxext/opengraph/socialcards.py'
adding 'sphinxext/opengraph/titleparser.py'
adding 'sphinxext/opengraph/_static/Roboto-Flex.ttf'
adding 'sphinxext/opengraph/_static/sphinx-logo-shadow.png'
adding 'sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/LICENSE.md'
adding 'sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/METADATA'
adding 'sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/WHEEL'
adding 'sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/top_level.txt'
adding 'sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/RECORD'
removing build/bdist.macosx-10.9-universal2/wheel
Successfully built sphinxext_opengraph-0.9.2.dev1+g1da6c73-py3-none-any.whl
And unzipping it shows it's present as well:
❯ unzip -l dist/sphinxext_opengraph-0.9.2.dev1+g1da6c73-py3-none-any.whl
Archive: dist/sphinxext_opengraph-0.9.2.dev1+g1da6c73-py3-none-any.whl
Length Date Time Name
--------- ---------- ----- ----
9686 04-15-2024 11:12 sphinxext/opengraph/__init__.py
3910 04-15-2024 11:12 sphinxext/opengraph/descriptionparser.py
748 04-15-2024 11:12 sphinxext/opengraph/metaparser.py
10246 04-15-2024 11:12 sphinxext/opengraph/socialcards.py
811 04-15-2024 11:12 sphinxext/opengraph/titleparser.py
1755856 04-15-2024 11:12 sphinxext/opengraph/_static/Roboto-Flex.ttf
1878 04-15-2024 11:12 sphinxext/opengraph/_static/sphinx-logo-shadow.png
1477 04-15-2024 11:16 sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/LICENSE.md
6538 04-15-2024 11:16 sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/METADATA
92 04-15-2024 11:16 sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/WHEEL
20 04-15-2024 11:16 sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/top_level.txt
1185 04-15-2024 11:16 sphinxext_opengraph-0.9.2.dev1+g1da6c73.dist-info/RECORD
--------- -------
1792447 12 files
I'm using as input source tar ball autogenerated from git tag which do not contain git metadata 🤔
Also works for me when starting with the sphinxext-opengraph-0.9.1.tar.gz
sdist from https://pypi.org/project/sphinxext-opengraph/#files:
Details
❯ python3 --version
Python 3.12.3
❯ python3 -m build --version
build 1.1.1 (/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/build)
❯ python3 -sBm build -w --no-isolation
* Getting build dependencies for wheel...
* Building wheel...
[04/16/24 17:42:10] WARNING toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section' pyproject_reading.py:42
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/sphinxext
creating build/lib/sphinxext/opengraph
copying sphinxext/opengraph/metaparser.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/__init__.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/descriptionparser.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/titleparser.py -> build/lib/sphinxext/opengraph
copying sphinxext/opengraph/socialcards.py -> build/lib/sphinxext/opengraph
running egg_info
writing sphinxext_opengraph.egg-info/PKG-INFO
writing dependency_links to sphinxext_opengraph.egg-info/dependency_links.txt
writing requirements to sphinxext_opengraph.egg-info/requires.txt
writing top-level names to sphinxext_opengraph.egg-info/top_level.txt
ERROR listing git files failed - pretending there aren't any git.py:24
reading manifest file 'sphinxext_opengraph.egg-info/SOURCES.txt'
adding license file 'LICENSE.md'
writing manifest file 'sphinxext_opengraph.egg-info/SOURCES.txt'
/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'sphinxext/opengraph._static' is absent from the `packages` configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'sphinxext/opengraph._static' as an importable package[^1],
but it is absent from setuptools' `packages` configuration.
This leads to an ambiguous overall configuration. If you want to distribute this
package, please make sure that 'sphinxext/opengraph._static' is explicitly added
to the `packages` configuration field.
Alternatively, you can also rely on setuptools' discovery methods
(for example by using `find_namespace_packages(...)`/`find_namespace:`
instead of `find_packages(...)`/`find:`).
You can read more about "package discovery" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
If you don't want 'sphinxext/opengraph._static' to be distributed and are
already explicitly excluding 'sphinxext/opengraph._static' via
`find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
you can try to use `exclude_package_data`, or `include-package-data=False` in
combination with a more fine grained `package-data` configuration.
You can read more about "package data files" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/datafiles.html
[^1]: For Python, any directory (with suitable naming) can be imported,
even if it does not contain any `.py` files.
On the other hand, currently there is no concept of package data
directory, all directories are treated like packages.
********************************************************************************
!!
check.warn(importable)
creating build/lib/sphinxext/opengraph/_static
copying sphinxext/opengraph/_static/Roboto-Flex.ttf -> build/lib/sphinxext/opengraph/_static
copying sphinxext/opengraph/_static/sphinx-logo-shadow.png -> build/lib/sphinxext/opengraph/_static
installing to build/bdist.macosx-10.9-universal2/wheel
running install
running install_lib
creating build/bdist.macosx-10.9-universal2
creating build/bdist.macosx-10.9-universal2/wheel
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/metaparser.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/__init__.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph/_static
copying build/lib/sphinxext/opengraph/_static/Roboto-Flex.ttf -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph/_static
copying build/lib/sphinxext/opengraph/_static/sphinx-logo-shadow.png -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph/_static
copying build/lib/sphinxext/opengraph/descriptionparser.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/titleparser.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
copying build/lib/sphinxext/opengraph/socialcards.py -> build/bdist.macosx-10.9-universal2/wheel/sphinxext/opengraph
running install_egg_info
Copying sphinxext_opengraph.egg-info to build/bdist.macosx-10.9-universal2/wheel/sphinxext_opengraph-0.9.1-py3.12.egg-info
running install_scripts
creating build/bdist.macosx-10.9-universal2/wheel/sphinxext_opengraph-0.9.1.dist-info/WHEEL
creating '/private/tmp/downloads/sphinxext-opengraph-0.9.1/dist/.tmp-p2dp52df/sphinxext_opengraph-0.9.1-py3-none-any.whl' and adding 'build/bdist.macosx-10.9-universal2/wheel' to it
adding 'sphinxext/opengraph/__init__.py'
adding 'sphinxext/opengraph/descriptionparser.py'
adding 'sphinxext/opengraph/metaparser.py'
adding 'sphinxext/opengraph/socialcards.py'
adding 'sphinxext/opengraph/titleparser.py'
adding 'sphinxext/opengraph/_static/Roboto-Flex.ttf'
adding 'sphinxext/opengraph/_static/sphinx-logo-shadow.png'
adding 'sphinxext_opengraph-0.9.1.dist-info/LICENSE.md'
adding 'sphinxext_opengraph-0.9.1.dist-info/METADATA'
adding 'sphinxext_opengraph-0.9.1.dist-info/WHEEL'
adding 'sphinxext_opengraph-0.9.1.dist-info/top_level.txt'
adding 'sphinxext_opengraph-0.9.1.dist-info/RECORD'
removing build/bdist.macosx-10.9-universal2/wheel
Successfully built sphinxext_opengraph-0.9.1-py3-none-any.whl
❯ unzip -l dist/sphinxext_opengraph-0.9.1-py3-none-any.whl
Archive: dist/sphinxext_opengraph-0.9.1-py3-none-any.whl
Length Date Time Name
--------- ---------- ----- ----
9686 12-14-2023 11:55 sphinxext/opengraph/__init__.py
3910 12-14-2023 11:55 sphinxext/opengraph/descriptionparser.py
748 12-14-2023 11:55 sphinxext/opengraph/metaparser.py
10246 12-14-2023 11:55 sphinxext/opengraph/socialcards.py
811 12-14-2023 11:55 sphinxext/opengraph/titleparser.py
1755856 12-14-2023 11:55 sphinxext/opengraph/_static/Roboto-Flex.ttf
1878 12-14-2023 11:55 sphinxext/opengraph/_static/sphinx-logo-shadow.png
1477 04-16-2024 14:42 sphinxext_opengraph-0.9.1.dist-info/LICENSE.md
6473 04-16-2024 14:42 sphinxext_opengraph-0.9.1.dist-info/METADATA
92 04-16-2024 14:42 sphinxext_opengraph-0.9.1.dist-info/WHEEL
20 04-16-2024 14:42 sphinxext_opengraph-0.9.1.dist-info/top_level.txt
1115 04-16-2024 14:42 sphinxext_opengraph-0.9.1.dist-info/RECORD
--------- -------
1792312 12 files
When using the GitHub release zip from https://github.com/wpilibsuite/sphinxext-opengraph/releases/tag/v0.9.1 the error message says to build from a Git repo or PyPI tarball:
Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.
For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj
ERROR Backend subprocess exited when trying to invoke build_wheel
Details
❯ python3 -sBm build -w --no-isolation
Found existing alias for "python3". You should use: "python"
* Getting build dependencies for wheel...
* Building wheel...
[04/16/24 17:46:17] WARNING toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section' pyproject_reading.py:42
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/build_meta.py", line 410, in build_wheel
return self._build_with_temp_dir(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir
self.run_setup()
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 6, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/__init__.py", line 104, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 146, in setup
_setup_distribution = dist = klass(attrs)
^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/dist.py", line 307, in __init__
_Distribution.__init__(self, dist_attrs)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 284, in __init__
self.finalize_options()
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/dist.py", line 658, in finalize_options
ep(self)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/dist.py", line 678, in _finalize_setup_keywords
ep.load()(self, ep.name, value)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools_scm/_integration/setuptools.py", line 101, in version_keyword
_assign_version(dist, config)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools_scm/_integration/setuptools.py", line 56, in _assign_version
_version_missing(config)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools_scm/_get_version_impl.py", line 112, in _version_missing
raise LookupError(
LookupError: setuptools-scm was unable to detect version for /private/tmp/downloads/sphinxext-opengraph-0.9.1-github.
Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.
For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj
ERROR Backend subprocess exited when trying to invoke build_wheel
When using the GitHub release zip from https://github.com/wpilibsuite/sphinxext-opengraph/releases/tag/v0.9.1 the error message says to build from a Git repo or PyPI tarball:
Yes and in such cases setuptools-scm
provides injecting version over $SETUPTOOLS_SCM_PRETEND_VERSION
env variable.
This methodology works in case of +130 other cases when setuptools-scm
is used
[tkloczko@pers-jacek SPECS]$ grep -l "BuildRequires:.*python3dist(setuptools-scm)" *spec | wc -l
136
So how in cases sdist tar ball is passed that this font file is data file? 🤔