data_scan_bug_notes 

TB Wiki

Login

data scan bug notes

The bug is in handling multi-line fields in the data_scan module.

On the page: http://bird.org/Fuego_Issue_List there is a database definition with a match_spec that includes a multi-line field (Description). This field is not getting parsed by the routine data_scan:scan_attr_db().

I'm not sure what the syntax is supposed to be for multi-line fields, but here is the current definition in the match_spec:

Description=^= Description =()
Description_endpat=^=()

Location of routines [edit section]

  • in table.py, db_from_parsed_files() calls data_scan.scan_attr_db()
  • in data_scan.py scan_attr_db() calls parse_data()

There's a FIXTHIS line in parse_data that says that multi-line values are not tested.

traceback showing call stack [edit section]

  File "fuego.cgi", line 54, in
    main(req)
  File "/home2/birdorg/work/tbwiki/cgi-bin/tbwiki_engine.py", line 1490, in main
    html = block_to_html(req, page_data)
  File "/home2/birdorg/work/tbwiki/cgi-bin/tbwiki_engine.py", line 1026, in block_to_html
    html += line_to_html(req.state, newline + '\n')
  File "/home2/birdorg/work/tbwiki/cgi-bin/tbwiki_engine.py", line 1087, in line_to_html
    html += state.req.processors[state.processor][1](state.req, state.block_content)
  File "/home2/birdorg/work/tbwiki-data/fuego/plugins/ProcessorTable.py", line 15, in Table
    result = table.get_table(req, content)
  File "/home2/birdorg/work/tbwiki/cgi-bin/table.py", line 1293, in get_table
    tb = setup_conf_and_db(req, content)
  File "/home2/birdorg/work/tbwiki/cgi-bin/table.py", line 1249, in setup_conf_and_db
    req.page_name, conf)
  File "/home2/birdorg/work/tbwiki/cgi-bin/table.py", line 1987, in get_table_data
    tb.handler.read()
  File "/home2/birdorg/work/tbwiki/cgi-bin/table.py", line 474, in read
    db_from_parsed_files(self.tb, self.data_dir, self.source_spec)
  File "/home2/birdorg/work/tbwiki/cgi-bin/table.py", line 1740, in db_from_parsed_files
    match_spec, 1)
  File "/home2/birdorg/work/tbwiki/cgi-bin/data_scan.py", line 480, in scan_attr_db
    drprint(req, mv.__dict__)
  File "/home2/birdorg/work/tbwiki/cgi-bin/data_scan.py", line 112, in drprint
    rprint(req, msg)
  File "/home2/birdorg/work/tbwiki/cgi-bin/data_scan.py", line 100, in rprint
    req.add_to_message(msg)
  File "/home2/birdorg/work/tbwiki/cgi-bin/tbwiki_engine.py", line 180, in add_to_message
    self.message += msg + "
TBWiki engine 1.9.1 by Tim Bird