Arelle / ixbrl-viewer

The Arelle iXBRL Viewer allows Inline XBRL (or iXBRL) reports to be viewed interactively in a web browser. The viewer allows users to access the tagged XBRL data embedded in an iXBRL report.
Other
97 stars 60 forks source link

[BUG] Invalid enum value throws error #612

Closed aaroncameron-wk closed 9 months ago

aaroncameron-wk commented 9 months ago

What happened?

Generating a viewer from a document that contains an enum fact with an invalid value (not matching defined enum values) throws an error.

https://github.com/Arelle/ixbrl-viewer/blob/ab45cac49b0a1bd2ab55e9fa71b703f1c44fcd2d/iXBRLViewerPlugin/iXBRLViewer.py#L268-L273

Invalid enum values cause the xValue to be None, which causes an error when passed to qname().

message: 'NoneType' object has no attribute 'namespaceURI'
stacktrace:   File "/usr/src/wf_arelle/service/jobs/base_job.py", in run
    self._results = self.work(self.work_args(filing_zip_handler))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/wf_arelle/service/jobs/wf_arelle_job.py", in work
    return worker.run()
           ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/contextlib.py", in inner
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/src/wf_arelle/service/jobs/ixbrl_viewer/ixbrl_viewer.py", in run
    viewer = builder.createViewer(self._get_ixbrlviewer_url(), showValidations=False)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iXBRLViewerPlugin/iXBRLViewer.py", in createViewer
    self.addFact(report, f)
  File "/usr/local/lib/python3.11/site-packages/iXBRLViewerPlugin/iXBRLViewer.py", in addFact
    factData["v"] = " ".join(self.nsmap.qname(qn) for qn in qnEnums)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iXBRLViewerPlugin/iXBRLViewer.py", in <genexpr>
    factData["v"] = " ".join(self.nsmap.qname(qn) for qn in qnEnums)
                             ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iXBRLViewerPlugin/iXBRLViewer.py", in qname
    return "%s:%s" % (self.getPrefix(qname.namespaceURI, qname.prefix), qname.localName)
                                     ^^^^^^^^^^^^^^^^^^

Version

1.4.14

With which browsers are you experiencing the bug?

Firefox, Chrome, Safari, Microsoft Edge

Documents

0001679788-23-000113-xbrl.zip

Screenshots

No response