Skip to content

Linter breaks on at least one interview (BPSOS), investigate #238

Description

@nonprofittechy

Error
Retry

KeyError: 'gather'
History
Ran initial code at 0.00000s
(from al_language.yml)

initial: True
code: |
if enable_al_language:
if session_local.attr("al_user_language"):
set_language(session_local.attr("al_user_language"))
else:
set_language(al_user_language)
process_action()
Ran initial code at 0.00008s
(from al_saved_sessions.yml)

initial: True
code: |
########### Save title and progress to session list ##################
if get_config("assembly line", {}).get("update session metadata", True):
update_current_session_metadata(
{
"auto_title": str(al_sessions_interview_title),
"progress": get_progress(),
}
)
Needed definition of al_sessions_interview_title at 0.00012s
Tried to run block at 0.00029s
(from al_saved_sessions.yml)

template: al_sessions_interview_title
content: |
% if defined('users[0].name.first'):
${ comma_and_list(users.complete_elements()) }
% if defined('other_parties[0].name.first'):
v. ${ comma_and_list(other_parties.complete_elements()) }
% endif
% else:
${ all_variables(special='titles').get('full') }
% if all_variables(special='titles').get('sub'):
: ${ all_variables(special='titles').get('sub') }
% endif
% endif
Ran initial code at 0.00037s
(from al_language.yml)

initial: True
code: |
if enable_al_language:
if session_local.attr("al_user_language"):
set_language(session_local.attr("al_user_language"))
else:
set_language(al_user_language)
process_action()
Ran initial code at 0.00041s
(from al_saved_sessions.yml)

initial: True
code: |
########### Save title and progress to session list ##################
if get_config("assembly line", {}).get("update session metadata", True):
update_current_session_metadata(
{
"auto_title": str(al_sessions_interview_title),
"progress": get_progress(),
}
)
Ran initial code at 0.00432s
(from al_visual.yml)

initial: True
code: |
menu_items = [item for item in al_menu_items if not item.get("hidden", False)]
Needed definition of al_menu_items at 0.00494s
Tried to run block at 0.00499s
(from al_visual.yml)

reconsider: True
code: |
al_menu_items = al_menu_items_custom_items + al_menu_items_default_items
Needed definition of al_menu_items_default_items at 0.00640s
Tried to run block at 0.00643s
(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:

  • url:
    url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  • url: |
    url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  • url: |
    url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  • url: |
    url_ask(["al_sessions_json_file", {"recompute": ["al_sessions_import_json"]}, "al_sessions_load_status"])
    label: str(al_import_answer_set_string)
    hidden: |
    not (
    (
    get_config('assembly line',{}).get('enable answer sets')
    and get_config('assembly line',{}).get('enable answer set imports')
    )
    or (user_logged_in() and user_has_privilege('admin'))
    )
    Needed definition of al_start_over_string at 0.00676s
    Tried to run block at 0.00679s
    (from al_visual.yml)

template: al_start_over_string
content: >-
Start over
Tried to run block at 0.00685s
(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:

  • url:
    url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  • url: |
    url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  • url: |
    url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  • url: |
    url_ask(["al_sessions_json_file", {"recompute": ["al_sessions_import_json"]}, "al_sessions_load_status"])
    label: str(al_import_answer_set_string)
    hidden: |
    not (
    (
    get_config('assembly line',{}).get('enable answer sets')
    and get_config('assembly line',{}).get('enable answer set imports')
    )
    or (user_logged_in() and user_has_privilege('admin'))
    )
    Needed definition of al_exit_logout_string at 0.00709s
    Tried to run block at 0.00711s
    (from al_visual.yml)

template: al_exit_logout_string
content: >-
Exit and delete my answers
Tried to run block at 0.00717s
(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:

  • url:
    url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  • url: |
    url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  • url: |
    url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  • url: |
    url_ask(["al_sessions_json_file", {"recompute": ["al_sessions_import_json"]}, "al_sessions_load_status"])
    label: str(al_import_answer_set_string)
    hidden: |
    not (
    (
    get_config('assembly line',{}).get('enable answer sets')
    and get_config('assembly line',{}).get('enable answer set imports')
    )
    or (user_logged_in() and user_has_privilege('admin'))
    )
    Needed definition of al_download_progress_string at 0.00747s
    Tried to run block at 0.00750s
    (from al_visual.yml)

template: al_download_progress_string
content: >-
Download current progress
Tried to run block at 0.00756s
(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:

  • url:
    url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  • url: |
    url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  • url: |
    url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  • url: |
    url_ask(["al_sessions_json_file", {"recompute": ["al_sessions_import_json"]}, "al_sessions_load_status"])
    label: str(al_import_answer_set_string)
    hidden: |
    not (
    (
    get_config('assembly line',{}).get('enable answer sets')
    and get_config('assembly line',{}).get('enable answer set imports')
    )
    or (user_logged_in() and user_has_privilege('admin'))
    )
    Needed definition of al_save_answer_set_string at 0.00797s
    Tried to run block at 0.00800s
    (from al_visual.yml)

template: al_save_answer_set_string
content: >-
Save answer set
Tried to run block at 0.00805s
(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:

  • url:
    url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  • url: |
    url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  • url: |
    url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  • url: |
    url_ask(["al_sessions_json_file", {"recompute": ["al_sessions_import_json"]}, "al_sessions_load_status"])
    label: str(al_import_answer_set_string)
    hidden: |
    not (
    (
    get_config('assembly line',{}).get('enable answer sets')
    and get_config('assembly line',{}).get('enable answer set imports')
    )
    or (user_logged_in() and user_has_privilege('admin'))
    )
    Needed definition of al_load_answer_set_string at 0.00864s
    Tried to run block at 0.00866s
    (from al_visual.yml)

template: al_load_answer_set_string
content: >-
Load answer set
Tried to run block at 0.00872s
(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:

  • url:
    url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  • url: |
    url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  • url: |
    url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  • url: |
    url_ask(["al_sessions_json_file", {"recompute": ["al_sessions_import_json"]}, "al_sessions_load_status"])
    label: str(al_import_answer_set_string)
    hidden: |
    not (
    (
    get_config('assembly line',{}).get('enable answer sets')
    and get_config('assembly line',{}).get('enable answer set imports')
    )
    or (user_logged_in() and user_has_privilege('admin'))
    )
    Needed definition of al_import_answer_set_string at 0.00918s
    Tried to run block at 0.00921s
    (from al_visual.yml)

template: al_import_answer_set_string
content: >-
Import answer set
Tried to run block at 0.00926s
(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:

  • url:
    url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  • url: |
    url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  • url: |
    url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  • url: |
    url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  • url: |
    url_ask(["al_sessions_json_file", {"recompute": ["al_sessions_import_json"]}, "al_sessions_load_status"])
    label: str(al_import_answer_set_string)
    hidden: |
    not (
    (
    get_config('assembly line',{}).get('enable answer sets')
    and get_config('assembly line',{}).get('enable answer set imports')
    )
    or (user_logged_in() and user_has_privilege('admin'))
    )
    Tried to run block at 0.00981s
    (from al_visual.yml)

reconsider: True
code: |
al_menu_items = al_menu_items_custom_items + al_menu_items_default_items
Ran initial code at 0.00989s
(from al_language.yml)

initial: True
code: |
if enable_al_language:
if session_local.attr("al_user_language"):
set_language(session_local.attr("al_user_language"))
else:
set_language(al_user_language)
process_action()
Ran initial code at 0.00996s
(from al_saved_sessions.yml)

initial: True
code: |
########### Save title and progress to session list ##################
if get_config("assembly line", {}).get("update session metadata", True):
update_current_session_metadata(
{
"auto_title": str(al_sessions_interview_title),
"progress": get_progress(),
}
)
Ran initial code at 0.01354s
(from al_visual.yml)

initial: True
code: |
menu_items = [item for item in al_menu_items if not item.get("hidden", False)]
Ran initial code at 0.01357s
(from al_visual.yml)

initial: True
code: |
if enable_al_nav_sections:
nav.set_sections(get_visible_al_nav_items(al_nav_sections))
Tried to run mandatory code at 0.01388s
mandatory: True
code: |
source_mode
run_ai_checks
if source_mode == "upload":
uploaded_yaml_files
elif source_mode == "installed":
selected_installed_package
selected_installed_files
elif source_mode == "playground":
selected_playground_project
selected_playground_files
lint_reports
show_results
Needed definition of lint_reports at 0.01477s
Tried to run block at 0.01482s
code: |
lint_sources = []
if source_mode == "upload":
for yaml_file in uploaded_yaml_files:
lint_sources.append({"name": yaml_file.filename, "token": yaml_file.path()})
elif source_mode == "installed":
for token in selected_installed_files.true_values():
lint_sources.append({"name": token.replace("ref:", ""), "token": token})
elif source_mode == "playground":
for token in selected_playground_files.true_values():
lint_sources.append({"name": token.split("/")[-1], "token": token})

lint_reports = lint_multiple_sources(
lint_sources,
language=spellcheck_languages,
include_llm=run_ai_checks,
lint_mode=lint_mode,
)
Ran initial code at 4.04623s
(from al_language.yml)

initial: True
code: |
if enable_al_language:
if session_local.attr("al_user_language"):
set_language(session_local.attr("al_user_language"))
else:
set_language(al_user_language)
process_action()
Log
Traceback (most recent call last):
File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/docassemble/webapp/server.py", line 8736, in index
interview.assemble(user_dict, interview_status, old_user_dict, force_question=special_question)
File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/docassemble/base/parse.py", line 9247, in assemble
raise the_error
File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/docassemble/base/parse.py", line 8864, in assemble
exec_with_trap(question, user_dict)
File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/docassemble/base/parse.py", line 10385, in exec_with_trap
exec(the_question.compute, the_dict)
File "<code block, al_language.yml, block on line 24>", line 6, in
File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/docassemble/base/functions.py", line 4460, in process_action
to_be_gathered = [({'var': variable_dict, 'context': {}} if isinstance(variable_dict, str) else variable_dict) for variable_dict in this_thread.internal['gather']] # change this later
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'gather'

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions