Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AttributeError: can't set attribute #224

Open
pcoccoli opened this issue Feb 28, 2024 · 2 comments
Open

AttributeError: can't set attribute #224

pcoccoli opened this issue Feb 28, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@pcoccoli
Copy link

Describe the bug
Unable to use any markdown file with fenced code blocks, like the terminal_ext example

To Reproduce

Steps to reproduce the behavior:

lookatme ~/Downloads/example.md

Expected behavior
Render the slides

Screenshots

Traceback (most recent call last):
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/__main__.py", line 169, in main
    pres.run()
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/pres.py", line 159, in run
    self.tui = lookatme.tui.create_tui(self, start_slide=start_slide)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 435, in create_tui
    tui = MarkdownTui(pres, start_slide)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 242, in __init__
    self.prep_pres(self.pres, start_idx)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 255, in prep_pres
    self.update()
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 370, in update
    self.update_body()
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 339, in update_body
    rendered = self.slide_renderer.render_slide(self.curr_slide)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 77, in render_slide
    raise res
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 101, in run
    res = self.do_render(to_render, slide_num)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 153, in do_render
    self._render_tokens(tokens)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/tui.py", line 196, in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/contrib/__init__.py", line 120, in inner
    return fn(*args, **kwargs)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/render/markdown_block.py", line 629, in render_code
    res = pygments_render.render_text(text, lang=lang)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/render/pygments.py", line 72, in render_text
    x[0].background = style_bg
AttributeError: can't set attribute

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pcoccoli/.pyenv/versions/gh392/bin/lookatme", line 8, in <module>
    sys.exit(main())
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/__main__.py", line 171, in main
    number = pres.get_tui().curr_slide.number + 1
  File "/home/pcoccoli/.pyenv/versions/gh392/lib/python3.9/site-packages/lookatme/pres.py", line 164, in get_tui
    raise ValueError(
ValueError: Tui has not been set, has the presentation been run yet?

Environment (please complete the following information):

  • OS: RHEL 8.9
  • Lookatme Version [e.g. lookatme --version]: lookatme, version 2.5.5

Additional context
Pygments==2.17.2

@pcoccoli pcoccoli added the bug Something isn't working label Feb 28, 2024
@reinerh
Copy link

reinerh commented Mar 25, 2024

Same error when building the Debian package and running tests:

I: pybuild base:305: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lookatme/build; python3.11 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.11.8, pytest-8.1.1, pluggy-1.4.0
rootdir: /<<PKGBUILDDIR>>
plugins: mock-3.12.0
collected 39 items

tests/test_cli.py .....                                                  [ 12%]
tests/test_contrib.py .                                                  [ 15%]
tests/test_file_loader.py FFFF                                           [ 25%]
tests/test_markdown.py .......FFFF                                       [ 53%]
tests/test_parse.py ......                                               [ 69%]
tests/test_schemas.py ......                                             [ 84%]
tests/test_table.py ...                                                  [ 92%]
tests/test_tutorial.py ...                                               [100%]

=================================== FAILURES ===================================
_______________________________ test_file_loader _______________________________

tmpdir = local('/tmp/pytest-of-reiner/pytest-0/test_file_loader0')
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486fb31e10>

    def test_file_loader(tmpdir, mocker):
        """Test the built-in file loader extension
        """
        tmppath = tmpdir.join("test.py")
        tmppath.write("print('hello')")

>       rendered = render_markdown(f"""
    ```file
    path: {tmppath}
    relative: false
    ```
        """)

tests/test_file_loader.py:42:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:629: in render_code
    res = pygments_render.render_text(text, lang=lang)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = b"print('hello')", lang = 'auto', style_name = 'monokai', plain = False

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
_______________________ test_file_loader_with_transform ________________________

tmpdir = local('/tmp/pytest-of-reiner/pytest-0/test_file_loader_with_transfor0')
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486e7305d0>

    def test_file_loader_with_transform(tmpdir, mocker):
        """Test the built-in file loader extension
        """
        tmppath = tmpdir.join("test.py")
        tmppath.write("""
    Hello
    Apples2
    there
    Apples3
    there
    Apples1
    """)

>       rendered = render_markdown(f"""
    ```file
    path: {tmppath}
    relative: false
    transform: "grep -i apples | sort"
    ```
        """)

tests/test_file_loader.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:629: in render_code
    res = pygments_render.render_text(text, lang=lang)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = b'Apples1\nApples2\nApples3\n', lang = 'auto', style_name = 'monokai'
plain = False

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
__________________________ test_file_loader_relative ___________________________

tmpdir = local('/tmp/pytest-of-reiner/pytest-0/test_file_loader_relative0')
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486dd34350>

    def test_file_loader_relative(tmpdir, mocker):
        """Test the built-in file loader extension
        """
        tmppath = tmpdir.join("test.py")
        tmppath.write("print('hello')")

>       rendered = render_markdown("""
    ```file
    path: test.py
    relative: true
    ```
        """)

tests/test_file_loader.py:98:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:629: in render_code
    res = pygments_render.render_text(text, lang=lang)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = b"print('hello')", lang = 'auto', style_name = 'monokai', plain = False

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
__________________________ test_file_loader_not_found __________________________

mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486dd60d10>

    def test_file_loader_not_found(mocker):
        """Test the built-in file loader extension
        """
>       rendered = render_markdown("""
    ```file
    path: does_not_exist.py
    ```
        """)

tests/test_file_loader.py:118:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:629: in render_code
    res = pygments_render.render_text(text, lang=lang)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = 'File not found', lang = 'text', style_name = 'monokai', plain = False

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
__________________________________ test_code ___________________________________

tmpdir = local('/tmp/pytest-of-reiner/pytest-0/test_code0')
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486f243510>

    def test_code(tmpdir, mocker):
        """Test code block rendering
        """
        setup_lookatme(tmpdir, mocker, style={
            "style": "monokai",
        })

>       rendered = render_markdown("""
    ```python
    def some_fn(*args, **kargs):
        pass```
    """)

tests/test_markdown.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:629: in render_code
    res = pygments_render.render_text(text, lang=lang)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = 'def some_fn(*args, **kargs):\n    pass', lang = 'python'
style_name = 'monokai', plain = False

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
_____________________________ test_empty_codeblock _____________________________

tmpdir = local('/tmp/pytest-of-reiner/pytest-0/test_empty_codeblock0')
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486dd5d350>

    def test_empty_codeblock(tmpdir, mocker):
        """Test that empty code blocks render correctly
        """
        setup_lookatme(tmpdir, mocker, style={
            "style": "monokai",
        })

>       render_markdown("""
    ```python

    ```""")

tests/test_markdown.py:271:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:629: in render_code
    res = pygments_render.render_text(text, lang=lang)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '\n', lang = 'python', style_name = 'monokai', plain = False

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
________________________________ test_code_yaml ________________________________

tmpdir = local('/tmp/pytest-of-reiner/pytest-0/test_code_yaml0')
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486dda4ed0>

    def test_code_yaml(tmpdir, mocker):
        """Test code block rendering with yaml language
        """
        setup_lookatme(tmpdir, mocker, style={
            "style": "monokai",
        })

>       rendered = render_markdown("""
    ```yaml
    test: a value
    test2: "another value"
    array:
      - item1
      - item2
      - item3
    ```""")

tests/test_markdown.py:284:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:629: in render_code
    res = pygments_render.render_text(text, lang=lang)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = 'test: a value\ntest2: "another value"\narray:\n  - item1\n  - item2\n  - item3'
lang = 'yaml', style_name = 'monokai', plain = False

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
_________________________________ test_inline __________________________________

tmpdir = local('/tmp/pytest-of-reiner/pytest-0/test_inline0')
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f486dd09750>

    def test_inline(tmpdir, mocker):
        """Test inline markdown
        """
        setup_lookatme(tmpdir, mocker, style={
            "style": "monokai",
            "link": {
                "fg": "underline",
                "bg": "default",
            },
        })

        rendered = render_markdown("*emphasis*")
        assert rendered[1][0][0].foreground == "default,italics"
        assert row_text(rendered[1]).strip() == b"emphasis"

        rendered = render_markdown("**emphasis**")
        assert rendered[1][0][0].foreground == "default,underline"
        assert row_text(rendered[1]).strip() == b"emphasis"

        rendered = render_markdown("_emphasis_")
        assert rendered[1][0][0].foreground == "default,italics"
        assert row_text(rendered[1]).strip() == b"emphasis"

        rendered = render_markdown("__emphasis__")
        assert rendered[1][0][0].foreground == "default,underline"
        assert row_text(rendered[1]).strip() == b"emphasis"

>       rendered = render_markdown("`inline code`")

tests/test_markdown.py:334:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:44: in render_markdown
    contents = renderer.render_slide(slides[0], force=True)
lookatme/tui.py:77: in render_slide
    raise res
lookatme/tui.py:101: in run
    res = self.do_render(to_render, slide_num)
lookatme/tui.py:153: in do_render
    self._render_tokens(tokens)
lookatme/tui.py:196: in _render_tokens
    res = render_token(token, stack[-1], stack, self.loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:493: in render_paragraph
    res = render_text(token, body, stack, loop)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_block.py:448: in render_text
    res = inline_lexer.output(text)
/usr/lib/python3/dist-packages/mistune0.py:585: in output
    ret = manipulate(text)
/usr/lib/python3/dist-packages/mistune0.py:579: in manipulate
    out = getattr(self, 'output_%s' % key)(m)
/usr/lib/python3/dist-packages/mistune0.py:680: in output_code
    return self.renderer.codespan(text)
lookatme/render/markdown_inline.py:24: in inner
    return fn(text, styles)
lookatme/contrib/__init__.py:120: in inner
    return fn(*args, **kwargs)
lookatme/render/markdown_inline.py:238: in codespan
    res = pygments_render.render_text(" " + text + " ", plain=True)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = ' inline code ', lang = 'text', style_name = 'monokai', plain = True

    def render_text(text, lang="text", style_name=None, plain=False):
        """Render the provided text with the pygments renderer
        """
        if style_name is None:
            style_name = config.get_style()["style"]

        lexer = get_lexer(lang)
        formatter, style_bg = get_formatter(style_name)

        start = time.time()
        code_tokens = lexer.get_tokens(text)
        config.get_log().debug(
            f"Took {time.time()-start}s to render {len(text)} bytes")

        markup = []
        for x in formatter.formatgenerator(code_tokens):
            if style_bg:
>               x[0].background = style_bg
E               AttributeError: property 'background' of 'AttrSpec' object has no setter

lookatme/render/pygments.py:72: AttributeError
=============================== warnings summary ===============================
.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:992: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd
    if ismodule(module) and hasattr(module, '__file__'):

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:993: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd
    f = module.__file__

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:899: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd
    if getattr(object, '__file__', None):

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:900: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd
    return object.__file__

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:992: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment
    if ismodule(module) and hasattr(module, '__file__'):

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:993: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment
    f = module.__file__

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:899: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment
    if getattr(object, '__file__', None):

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:900: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment
    return object.__file__

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:992: DeprecationWarning: urwid.web_display is moved to urwid.display.web
    if ismodule(module) and hasattr(module, '__file__'):

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:993: DeprecationWarning: urwid.web_display is moved to urwid.display.web
    f = module.__file__

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:899: DeprecationWarning: urwid.web_display is moved to urwid.display.web
    if getattr(object, '__file__', None):

.pybuild/cpython3_3.11_lookatme/build/tests/test_file_loader.py::test_file_loader
  /usr/lib/python3.11/inspect.py:900: DeprecationWarning: urwid.web_display is moved to urwid.display.web
    return object.__file__

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_file_loader.py::test_file_loader - AttributeError: property...
FAILED tests/test_file_loader.py::test_file_loader_with_transform - Attribute...
FAILED tests/test_file_loader.py::test_file_loader_relative - AttributeError:...
FAILED tests/test_file_loader.py::test_file_loader_not_found - AttributeError...
FAILED tests/test_markdown.py::test_code - AttributeError: property 'backgrou...
FAILED tests/test_markdown.py::test_empty_codeblock - AttributeError: propert...
FAILED tests/test_markdown.py::test_code_yaml - AttributeError: property 'bac...
FAILED tests/test_markdown.py::test_inline - AttributeError: property 'backgr...
================== 8 failed, 31 passed, 12 warnings in 0.41s ===================

@carbon-steel
Copy link

I'm also encountering this same problem on my Fedora machine when calling lookatme --tutorial

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants