I ran into an issue when I tried to perform a needextract on a set of minimal external needs (consisting of only the programmatically mandatory fields: id, title, description, type, docname) imported via needs_external_needs:

  • needextract:
.. needextract::
   :filter: type == 'req-sys' and 'internal' not in tags
   :layout: focus_l
  • External needs:
    "project_name": "Demo Project",
    "current_version": "1.0",
    "versions": {
        "1.0": {
            "filters": {},
            "filters_amount": 0,
            "needs": {
                "N_1": {
                    "id": "N_1",
                    "title": "Second demo requirement",
                    "type": "req-sys",
                    "description": "# We need the first thing\r\n# We need the second thing",
                    "docname": "needs/1"
                "N_2": {
                    "id": "N_2",
                    "title": "First demo requirement",
                    "type": "req-sys",
                    "description": "* We need this\r\n* We need that",
                    "docname": "needs/2"
            "needs_amount": 2

When running a Sphinx build with this setup, the following error occurs:

Extension error (sphinx_needs.needs):
Handler <function process_creator.<locals>.process_caller at 0x401a57e310> for event 'doctree-resolved' threw an exception (exception: 'NoneType' object has no attribute 'deepcopy')

Could this be caused by the process_filters function not checking if tags is None before trying to get the list's length, or am I doing something wrong here?

If you want to have an in-depth look, I'd be happy create a minimal example.

© 2022 pullanswer.com - All rights reserved.