ixbrl-viewer 1.4.29__py3-none-any.whl → 1.4.31__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ixbrl-viewer might be problematic. Click here for more details.

@@ -18,7 +18,7 @@ https://github.com/nodeca/pako/blob/main/LICENSE
18
18
  */
19
19
 
20
20
  /*!
21
- * Chart.js v4.4.3
21
+ * Chart.js v4.4.4
22
22
  * https://www.chartjs.org
23
23
  * (c) 2024 Chart.js Contributors
24
24
  * Released under the MIT License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ixbrl-viewer
3
- Version: 1.4.29
3
+ Version: 1.4.31
4
4
  Summary: The Arelle iXBRL Viewer allows iXBRL reports to be viewed interactively in a web browser.
5
5
  Author-email: "arelle.org" <support@arelle.org>
6
6
  License: Apache-2.0
@@ -30,15 +30,15 @@ Requires-Python: >=3.8
30
30
  Description-Content-Type: text/markdown
31
31
  License-File: LICENSE
32
32
  License-File: NOTICE
33
- Requires-Dist: lxml <6,>=4
33
+ Requires-Dist: lxml<6,>=4
34
34
  Provides-Extra: arelle
35
- Requires-Dist: arelle-release ==2.* ; extra == 'arelle'
35
+ Requires-Dist: arelle-release==2.*; extra == "arelle"
36
36
  Provides-Extra: dev
37
- Requires-Dist: flake8 ==7.1.0 ; extra == 'dev'
38
- Requires-Dist: lxml-stubs ==0.5.1 ; extra == 'dev'
39
- Requires-Dist: mypy ==1.10.1 ; extra == 'dev'
40
- Requires-Dist: pytest ==8.2.2 ; extra == 'dev'
41
- Requires-Dist: typing-extensions ==4.12.2 ; extra == 'dev'
37
+ Requires-Dist: flake8==7.1.1; extra == "dev"
38
+ Requires-Dist: lxml-stubs==0.5.1; extra == "dev"
39
+ Requires-Dist: mypy==1.11.2; extra == "dev"
40
+ Requires-Dist: pytest==8.3.2; extra == "dev"
41
+ Requires-Dist: typing-extensions==4.12.2; extra == "dev"
42
42
 
43
43
  # Arelle iXBRL Viewer
44
44
 
@@ -1,8 +1,9 @@
1
- iXBRLViewerPlugin/__init__.py,sha256=11uzkyzBvzgrFDf5EKwBZZ70iZER9LBCY7-6Eu3kXFM,15808
2
- iXBRLViewerPlugin/_version.py,sha256=kfVf-BkLnZrW3kthFiwCq4HHUs_dNkoJYhqseJxaTjY,413
1
+ iXBRLViewerPlugin/__init__.py,sha256=zPYguUnmY0sIGd8-UriorcM2XK0ADx2E95a33sjR0bA,16483
2
+ iXBRLViewerPlugin/_version.py,sha256=Q3SGR1EB4a-MI7RxL0SWcBVp8K-Av6mOURLGIrY5CMU,413
3
3
  iXBRLViewerPlugin/constants.py,sha256=gXwZxPp5PJETC-sOvLxOToSe5pIjmQv2WMhZMNoPpKw,1062
4
4
  iXBRLViewerPlugin/featureConfig.py,sha256=tOViPYmN32i2uIf_T9HGgbkkv41VoTpTjqhn4w9rTgw,194
5
- iXBRLViewerPlugin/iXBRLViewer.py,sha256=LcSUontEDcJAb4TkRKssf-PNhUB24IUAx8kxEzJYI9E,27920
5
+ iXBRLViewerPlugin/iXBRLViewer.py,sha256=f5-8M9EE9KbNu-59bBDGCzTv9eD3bPNqgbWA61HWM_0,28567
6
+ iXBRLViewerPlugin/plugin.py,sha256=d-x2i1WzfyMNZ4OnhxP9txkpZtPoDtKvgzghh_uB84g,232
6
7
  iXBRLViewerPlugin/stubviewer.html,sha256=hc5BeIR7y3ojGRux_Hy5oqEAHdlQ34kk3lL5eH-B4AU,158
7
8
  iXBRLViewerPlugin/ui.py,sha256=OismWQzm_T16j-6O8cfGZ7qLMKIMIA36rRlb9mbOOh0,10512
8
9
  iXBRLViewerPlugin/xhtmlserialize.py,sha256=2fV88KD5XOXqDzYaQgovbvuUQINF0n6E-6Nw174zniY,6771
@@ -11,8 +12,8 @@ iXBRLViewerPlugin/viewer/version.js,sha256=7b5si8UmaS7QqALQIP-wJ0I8onKFox8VyaAiU
11
12
  iXBRLViewerPlugin/viewer/webpack.common.js,sha256=hpXufjShXAESQh8Ds7ViJ_tbr8XSb7EdqQLRvyu_mQg,1691
12
13
  iXBRLViewerPlugin/viewer/webpack.dev.js,sha256=R9AwY_TBrg9otvXpDxT1UsGg5eMqi4aXW7C7EIsHzZk,551
13
14
  iXBRLViewerPlugin/viewer/webpack.prod.js,sha256=vfLowWC1EOty0zbq9P-usGaJ3w-JoERpJrYaE9MfoSE,499
14
- iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js,sha256=s4sZHdzc14ZlVMbHkWUhxoE49mL8w8eUG_zm6Z_phEA,800919
15
- iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt,sha256=2bD4VShd311WquXvtJNpD0aHN3ru67ZeolE1OxkV5Ys,1832
15
+ iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js,sha256=9VV9RwrTIHkIM6dlza1jYqtrVo_1mKaU0i9ToOMfiBM,801027
16
+ iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt,sha256=9hzi_BOjTCIaD59sKfG2Gmdx6ruHeCyiRteSwtUSU3E,1832
16
17
  iXBRLViewerPlugin/viewer/src/html/fact-details.html,sha256=P9BJw1OK4nIYfoT4KPwW1WP94ZeD7v1nisvSKMeSnU8,1495
17
18
  iXBRLViewerPlugin/viewer/src/html/footnote-details.html,sha256=9I7y0KM7xsPzbiZheuHkm1k4nHNXD8S9qxvD_Y0I1Us,278
18
19
  iXBRLViewerPlugin/viewer/src/html/inspector.html,sha256=Uze8Y_uSeeYqz_eMNkABc2VP2yRvlfIdg8Zo-kOfTTo,20062
@@ -154,12 +155,12 @@ tests/puppeteer/tools/generate.sh,sha256=jZ1Jac6KsuRo2nHuA2B9g9mZqr7tLjPJKJAUf0o
154
155
  tests/unit_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
156
  tests/unit_tests/iXBRLViewerPlugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
157
  tests/unit_tests/iXBRLViewerPlugin/mock_arelle.py,sha256=fQKJGwceaEVaxvqV9tyuvT6DJB5s1X3-oSMjbFMKlS8,1301
157
- tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py,sha256=1Q4O_1SzJaDjouRbkgn2PGFsWfJ4_lK-zzsgV9iXXF0,31725
158
+ tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py,sha256=ZS6YsqkLUDo7mrrakC8NL49kQoXS-TX1PnP1oM1OyH8,31687
158
159
  tests/unit_tests/iXBRLViewerPlugin/test_xhtmlserialize.py,sha256=kdrg4i-YXnYAGl9TLWEACPQF0V69OAMXdXLYJwefsH0,12521
159
- ixbrl_viewer-1.4.29.dist-info/LICENSE,sha256=TZJhu77S_2-WQcPAkuIAlQiuuiNqVcuHBjd7z3Y5S08,16645
160
- ixbrl_viewer-1.4.29.dist-info/METADATA,sha256=0UAizayrUu0S1uxbyIIY5IXDZf19PZHp0Rb6unpICuQ,14716
161
- ixbrl_viewer-1.4.29.dist-info/NOTICE,sha256=-SHDY0OY7s4gm4Rdk5AB3nbnUsrdHEHPdJuGFR_vuM4,566
162
- ixbrl_viewer-1.4.29.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
163
- ixbrl_viewer-1.4.29.dist-info/entry_points.txt,sha256=2XUzP20WGwxdvnugdBybUBwAB3xf_zvrOR5W_smFz_4,65
164
- ixbrl_viewer-1.4.29.dist-info/top_level.txt,sha256=h8MkrMhC_t2-KbfS1oxJVnFAbn5NZJH8END_BL40mv8,24
165
- ixbrl_viewer-1.4.29.dist-info/RECORD,,
160
+ ixbrl_viewer-1.4.31.dist-info/LICENSE,sha256=TZJhu77S_2-WQcPAkuIAlQiuuiNqVcuHBjd7z3Y5S08,16645
161
+ ixbrl_viewer-1.4.31.dist-info/METADATA,sha256=vaxNF99SpLzihZ5hNZs1CN8ZlboYKwPtnNAxtYqELTs,14703
162
+ ixbrl_viewer-1.4.31.dist-info/NOTICE,sha256=-SHDY0OY7s4gm4Rdk5AB3nbnUsrdHEHPdJuGFR_vuM4,566
163
+ ixbrl_viewer-1.4.31.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
164
+ ixbrl_viewer-1.4.31.dist-info/entry_points.txt,sha256=2XUzP20WGwxdvnugdBybUBwAB3xf_zvrOR5W_smFz_4,65
165
+ ixbrl_viewer-1.4.31.dist-info/top_level.txt,sha256=h8MkrMhC_t2-KbfS1oxJVnFAbn5NZJH8END_BL40mv8,24
166
+ ixbrl_viewer-1.4.31.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: bdist_wheel (0.44.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -361,17 +361,6 @@ class TestIXBRLViewer:
361
361
  ixdsTarget=None,
362
362
  )
363
363
 
364
- error1 = logging.LogRecord("arelle", logging.ERROR, "", 0, "Error message", {}, None)
365
- error1.messageCode = "code1"
366
- self.modelManager = Mock(
367
- cntlr = Mock(
368
- logHandler = Mock (
369
- logRecordBuffer = [
370
- error1
371
- ]
372
- )
373
- )
374
- )
375
364
 
376
365
  def urlDocEntry(path, docType, linkQName=None):
377
366
  return path, Mock(
@@ -394,7 +383,6 @@ class TestIXBRLViewer:
394
383
  facts=[fact_1, fact_with_typed_dimension, fact_with_missing_member_on_dimension],
395
384
  info=info_effect,
396
385
  modelDocument=self.modelDocument,
397
- modelManager=self.modelManager,
398
386
  ixdsTarget=None,
399
387
  urlDocs=dict((
400
388
  urlDocEntry('/filesystem/local-inline.htm', Type.INLINEXBRL),
@@ -425,7 +413,6 @@ class TestIXBRLViewer:
425
413
  facts=[fact_2, fact_3],
426
414
  info=info_effect,
427
415
  modelDocument=self.modelDocument,
428
- modelManager=self.modelManager,
429
416
  ixdsTarget=None,
430
417
  urlDocs={}
431
418
  )
@@ -437,7 +424,6 @@ class TestIXBRLViewer:
437
424
  facts=[fact_1, fact_with_typed_dimension, fact_with_missing_member_on_dimension],
438
425
  info=info_effect,
439
426
  modelDocument=self.modelDocumentInlineSet,
440
- modelManager=self.modelManager,
441
427
  ixdsTarget=None,
442
428
  urlDocs={}
443
429
  )
@@ -450,10 +436,15 @@ class TestIXBRLViewer:
450
436
  typed_dimension_domain_concept.modelXbrl = self.modelXbrl_1
451
437
  member_concept.modelXbrl = self.modelXbrl_1
452
438
 
453
- self.builder_1 = IXBRLViewerBuilder([self.modelXbrl_1])
454
- self.builder_2 = IXBRLViewerBuilder([self.modelXbrl_1])
455
- self.builder_3 = IXBRLViewerBuilder([self.modelXbrl_2])
456
- self.builder_doc_set = IXBRLViewerBuilder([self.modelXbrlDocSet])
439
+ self.logRecordBuffer = []
440
+ self.cntlr_mock = Mock(
441
+ logHandler = Mock(
442
+ logRecordBuffer = self.logRecordBuffer
443
+ )
444
+ )
445
+ self.builder_1 = IXBRLViewerBuilder(self.cntlr_mock)
446
+ self.builder_doc_set = IXBRLViewerBuilder(self.cntlr_mock)
447
+
457
448
 
458
449
  @patch('arelle.XbrlConst.conceptLabel', 'http://www.xbrl.org/2003/arcrole/concept-label')
459
450
  @patch('arelle.XbrlConst.conceptReference', 'http://www.xbrl.org/2003/arcrole/concept-reference')
@@ -513,7 +504,13 @@ class TestIXBRLViewer:
513
504
  @patch('arelle.XbrlConst.documentationLabel', 'http://www.xbrl.org/2003/role/documentation')
514
505
  def test_createViewerWithValidation(self):
515
506
  js_uri = 'ixbrlviewer.js'
516
- builder = IXBRLViewerBuilder([self.modelXbrl_1])
507
+
508
+ error1 = logging.LogRecord("arelle", logging.ERROR, "", 0, "Error message", {}, None)
509
+ error1.messageCode = "code1"
510
+ self.logRecordBuffer.append(error1)
511
+
512
+ builder = IXBRLViewerBuilder(self.cntlr_mock)
513
+ builder.processModel(self.modelXbrl_1)
517
514
  result = builder.createViewer(js_uri)
518
515
  assert len(result.files) == 1
519
516
  body = result.files[0].xmlDocument.getroot()[0]
@@ -538,7 +535,8 @@ class TestIXBRLViewer:
538
535
  @patch('arelle.XbrlConst.dimensionDefault', 'http://xbrl.org/int/dim/arcrole/dimension-default')
539
536
  def test_createViewer(self):
540
537
  js_uri = 'ixbrlviewer.js'
541
- builder = IXBRLViewerBuilder([self.modelXbrl_1])
538
+ builder = IXBRLViewerBuilder(self.cntlr_mock)
539
+ builder.processModel(self.modelXbrl_1)
542
540
  result = builder.createViewer(js_uri, showValidations = False)
543
541
  assert len(result.files) == 1
544
542
  body = result.files[0].xmlDocument.getroot()[0]
@@ -583,8 +581,9 @@ class TestIXBRLViewer:
583
581
  @patch('arelle.XbrlConst.dimensionDefault', 'http://xbrl.org/int/dim/arcrole/dimension-default')
584
582
  def test_createStubViewer(self):
585
583
  js_uri = 'ixbrlviewer.js'
586
- builder = IXBRLViewerBuilder([self.modelXbrl_1])
587
- result = builder.createViewer(js_uri, showValidations = False, useStubViewer = True)
584
+ builder = IXBRLViewerBuilder(self.cntlr_mock, useStubViewer = True)
585
+ builder.processModel(self.modelXbrl_1)
586
+ result = builder.createViewer(js_uri, showValidations = False)
588
587
  assert len(result.files) == 2
589
588
  body = result.files[0].xmlDocument.getroot().find('{http://www.w3.org/1999/xhtml}body')
590
589
  assert body[0].text == 'BEGIN IXBRL VIEWER EXTENSIONS'
@@ -628,6 +627,7 @@ class TestIXBRLViewer:
628
627
  @patch('arelle.XbrlConst.dimensionDefault', 'http://xbrl.org/int/dim/arcrole/dimension-default')
629
628
  def test_createViewer_docset(self):
630
629
  js_uri = 'ixbrlviewer.js'
630
+ self.builder_doc_set.processModel(self.modelXbrlDocSet)
631
631
  result = self.builder_doc_set.createViewer(js_uri, showValidations=False)
632
632
  assert len(result.files) == 2
633
633
  body = result.files[0].xmlDocument.getroot()[0]
@@ -656,7 +656,8 @@ class TestIXBRLViewer:
656
656
  @patch('arelle.XbrlConst.documentationLabel', 'http://www.xbrl.org/2003/role/documentation')
657
657
  def test_createViewer_bad_path(self):
658
658
  js_uri = 'ixbrlviewer.js'
659
- builder = IXBRLViewerBuilder([self.modelXbrl_2])
659
+ builder = IXBRLViewerBuilder(self.cntlr_mock)
660
+ builder.processModel(self.modelXbrl_2)
660
661
  result = builder.createViewer(js_uri)
661
662
  assert len(result.files) == 1
662
663
  body = result.files[0].xmlDocument.getroot()[0]