pauleveritt / fdom

Template engine based on tag strings and functional ideas.
0 stars 0 forks source link

Triple-quoted strings fail with 'NoneType' object is not iterable #13

Open pauleveritt opened 11 months ago

pauleveritt commented 11 months ago

This:

    return html"""
            <ul>
              <li>1</li>
              <li>2</li>
              <li>3</li>
            </ul>
            """

...fails with this exception:

Traceback (most recent call last):
  File "/Users/pauleveritt/projects/pauleveritt/fdom/examples/static_string/triple_quoted_strings/__init__.py", line 17, in <module>
    print(main())
          ^^^^^^
  File "/Users/pauleveritt/projects/pauleveritt/fdom/examples/static_string/triple_quoted_strings/__init__.py", line 7, in main
    return html"""
           ^^^^^^^
  File "/Users/pauleveritt/projects/pauleveritt/fdom/src/fdom/htmltag.py", line 18, in html
    compiled_template = compile_template(*keyed_args)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pauleveritt/projects/pauleveritt/fdom/src/fdom/htmltag.py", line 12, in compile_template
    return HTMLCompiler()(ast)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/pauleveritt/projects/pauleveritt/fdom/src/fdom/htmlcompiler.py", line 139, in __call__
    code = super().__call__(tag)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pauleveritt/projects/pauleveritt/fdom/src/fdom/basecompiler.py", line 25, in __call__
    self.compile(tag)
  File "/Users/pauleveritt/projects/pauleveritt/fdom/src/fdom/htmlcompiler.py", line 188, in compile
    tagname_builder = self.get_name_builder(tag.tagname)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pauleveritt/projects/pauleveritt/fdom/src/fdom/htmlcompiler.py", line 171, in get_name_builder
    for item in elements:
TypeError: 'NoneType' object is not iterable
pauleveritt commented 11 months ago

Updated to have a simpler example.

jimbaker commented 11 months ago

Ack, I can reproduce.