arelle-release 2.37.54__py3-none-any.whl → 2.37.55__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 arelle-release might be problematic. Click here for more details.

arelle/CntlrCmdLine.py CHANGED
@@ -1171,10 +1171,6 @@ class CntlrCmdLine(Cntlr.Cntlr):
1171
1171
  for pluginXbrlMethod in PluginManager.pluginClassMethods("CntlrCmdLine.Xbrl.Run"):
1172
1172
  pluginXbrlMethod(self, options, modelXbrl, _entrypoint, sourceZipStream=sourceZipStream, responseZipStream=responseZipStream)
1173
1173
 
1174
- if options.validate:
1175
- for pluginXbrlMethod in PluginManager.pluginClassMethods("Validate.Complete"):
1176
- pluginXbrlMethod(self, filesource)
1177
-
1178
1174
  except OSError as err:
1179
1175
  self.addToLog(_("[IOError] Failed to save output:\n {0}").format(err),
1180
1176
  messageCode="IOError",
@@ -1222,6 +1218,11 @@ class CntlrCmdLine(Cntlr.Cntlr):
1222
1218
  self.modelManager.close(modelDiffReport)
1223
1219
  elif modelXbrl:
1224
1220
  self.modelManager.close(modelXbrl)
1221
+
1222
+ if options.validate:
1223
+ for pluginXbrlMethod in PluginManager.pluginClassMethods("Validate.Complete"):
1224
+ pluginXbrlMethod(self, filesource)
1225
+
1225
1226
  if filesource is not None and not options.keepOpen:
1226
1227
  # Archive filesource potentially used by multiple reports may still be open.
1227
1228
  filesource.close()
arelle/Validate.py CHANGED
@@ -488,13 +488,13 @@ class Validate:
488
488
  self.instValidator.validate(model, parameters)
489
489
  for pluginXbrlMethod in pluginClassMethods("TestcaseVariation.Xbrl.Validated"):
490
490
  pluginXbrlMethod(self.modelXbrl, model)
491
- for pluginXbrlMethod in pluginClassMethods("Validate.Complete"):
492
- pluginXbrlMethod(self.modelXbrl.modelManager.cntlr, filesource)
493
491
  except Exception as err:
494
492
  model.error("exception:" + type(err).__name__,
495
493
  _("Testcase variation validation exception: %(error)s, instance: %(instance)s"),
496
494
  modelXbrl=model, instance=model.modelDocument.basename, error=err, exc_info=(type(err) is not AssertionError))
497
495
  model.hasFormulae = _hasFormulae
496
+ for pluginXbrlMethod in pluginClassMethods("Validate.Complete"):
497
+ pluginXbrlMethod(self.modelXbrl.modelManager.cntlr, filesource)
498
498
  errors = [error for model in loadedModels for error in model.errors]
499
499
  for err in preLoadingErrors:
500
500
  if err not in errors:
arelle/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '2.37.54'
32
- __version_tuple__ = version_tuple = (2, 37, 54)
31
+ __version__ = version = '2.37.55'
32
+ __version_tuple__ = version_tuple = (2, 37, 55)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -40,6 +40,27 @@ xhtmlDtdExtension = "xhtml1-strict-ix.dtd"
40
40
 
41
41
  COVER_PAGE_FILENAME_PREFIX = "0000000_header_"
42
42
 
43
+ PROHIBITED_HTML_ATTRIBUTES = frozenset({
44
+ 'onblur',
45
+ 'onchange',
46
+ 'onclick',
47
+ 'ondblclick',
48
+ 'onfocus',
49
+ 'onkeydown',
50
+ 'onkeypress',
51
+ 'onkeyup',
52
+ 'onload',
53
+ 'onmousedown',
54
+ 'onmousemove',
55
+ 'onmouseout',
56
+ 'onmouseover',
57
+ 'onmouseup',
58
+ 'onreset',
59
+ 'onselect',
60
+ 'onsubmit',
61
+ 'onunload',
62
+ })
63
+
43
64
  PROHIBITED_HTML_TAGS = frozenset({
44
65
  'applet',
45
66
  'embed',
@@ -31,7 +31,7 @@ from arelle.XhtmlValidate import htmlEltUriAttrs
31
31
  from arelle.XmlValidate import VALID
32
32
  from arelle.typing import TypeGetText
33
33
  from arelle.utils.PluginData import PluginData
34
- from .Constants import CORPORATE_FORMS, FormType, xhtmlDtdExtension, PROHIBITED_HTML_TAGS
34
+ from .Constants import CORPORATE_FORMS, FormType, xhtmlDtdExtension, PROHIBITED_HTML_TAGS, PROHIBITED_HTML_ATTRIBUTES
35
35
  from .ControllerPluginData import ControllerPluginData
36
36
  from .ManifestInstance import ManifestInstance
37
37
  from .Statement import Statement, STATEMENTS, BalanceSheet, StatementInstance, StatementType
@@ -301,6 +301,19 @@ class PluginValidationDataExtension(PluginData):
301
301
  controllerPluginData = ControllerPluginData.get(modelXbrl.modelManager.cntlr, self.name)
302
302
  return controllerPluginData.matchManifestInstance(modelXbrl.ixdsDocUrls)
303
303
 
304
+ @lru_cache(1)
305
+ def getProhibitedAttributeElements(self, modelDocument: ModelDocument) -> list[tuple[ModelObject, str]]:
306
+ results: list[tuple[ModelObject, str]] = []
307
+ if modelDocument.type not in (ModelDocumentType.INLINEXBRL, ModelDocumentType.HTML):
308
+ return results
309
+ for elt in modelDocument.xmlRootElement.iter():
310
+ if not isinstance(elt, ModelObject):
311
+ continue
312
+ for attributeName in elt.attrib.keys():
313
+ if attributeName in PROHIBITED_HTML_ATTRIBUTES:
314
+ results.append((elt, str(attributeName)))
315
+ return results
316
+
304
317
  @lru_cache(1)
305
318
  def getProhibitedTagElements(self, modelDocument: ModelDocument) -> list[ModelObject]:
306
319
  elts: list[ModelObject] = []
@@ -641,3 +641,32 @@ def rule_gfm_1_3_1(
641
641
  msg=_("The submitter-specific taxonomy contains include elements."),
642
642
  modelObject=warnings
643
643
  )
644
+
645
+
646
+ @validation(
647
+ hook=ValidationHook.XBRL_FINALLY,
648
+ disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
649
+ )
650
+ def rule_gfm_1_3_8(
651
+ pluginData: PluginValidationDataExtension,
652
+ val: ValidateXbrl,
653
+ *args: Any,
654
+ **kwargs: Any,
655
+ ) -> Iterable[Validation]:
656
+ """
657
+ EDINET.EC5700W: [GFM 1.3.8] TThe submitter-specific taxonomy has an embedded linkbase.
658
+ """
659
+ embeddedElements = []
660
+ for modelDocument in val.modelXbrl.urlDocs.values():
661
+ if pluginData.isStandardTaxonomyUrl(modelDocument.uri, val.modelXbrl):
662
+ continue
663
+ rootElt = modelDocument.xmlRootElement
664
+ for elt in rootElt.iterdescendants(XbrlConst.qnLinkLinkbaseRef.clarkNotation):
665
+ if elt.attrib.get(XbrlConst.qnXlinkType.clarkNotation) in ('extended', 'arc', 'resource', 'locator'):
666
+ embeddedElements.append(elt)
667
+ if len(embeddedElements) > 0:
668
+ yield Validation.warning(
669
+ codes='EDINET.EC5700W.GFM.1.3.8',
670
+ msg=_("The submitter-specific taxonomy has an embedded linkbase."),
671
+ modelObject=embeddedElements
672
+ )
@@ -790,6 +790,33 @@ def rule_EC1020E(
790
790
  )
791
791
 
792
792
 
793
+ @validation(
794
+ hook=ValidationHook.XBRL_FINALLY,
795
+ disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
796
+ )
797
+ def rule_EC1031E(
798
+ pluginData: PluginValidationDataExtension,
799
+ val: ValidateXbrl,
800
+ *args: Any,
801
+ **kwargs: Any,
802
+ ) -> Iterable[Validation]:
803
+ """
804
+ EDINET.EC1031E: Prohibited attribute is used in HTML.
805
+ """
806
+ for doc in val.modelXbrl.urlDocs.values():
807
+ for elt, attributeName in pluginData.getProhibitedAttributeElements(doc):
808
+ yield Validation.error(
809
+ codes='EDINET.EC1031E',
810
+ msg=_("Prohibited attribute '%(attributeName)s' is used in HTML. "
811
+ "File name: %(file)s (line %(line)s). "
812
+ "Please correct the tag attributes of the relevant file."),
813
+ attributeName=elt.qname.localName,
814
+ file=doc.basename,
815
+ line=elt.sourceline,
816
+ modelObject=elt,
817
+ )
818
+
819
+
793
820
  @validation(
794
821
  hook=ValidationHook.FILESOURCE,
795
822
  disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arelle-release
3
- Version: 2.37.54
3
+ Version: 2.37.55
4
4
  Summary: An open source XBRL platform.
5
5
  Author-email: "arelle.org" <support@arelle.org>
6
6
  License-Expression: Apache-2.0
@@ -1,7 +1,7 @@
1
1
  arelle/Aspect.py,sha256=Pn9I91D1os1RTVj6htuxTfRzVMhmVDtrbKvV_zy9xMI,5470
2
2
  arelle/BetaFeatures.py,sha256=T_tPac-FiozHyYLCemt0RoHJ1JahUE71L-0tHmIRKpE,858
3
3
  arelle/Cntlr.py,sha256=nwE_qIQMTa5R3sr_dLP6s3srLhiEA5zDOqfas2pDxoA,31691
4
- arelle/CntlrCmdLine.py,sha256=FN1LhP9ojd2A5WeShvwtVUe-osRf5gvV0EMHpWNZZo0,88752
4
+ arelle/CntlrCmdLine.py,sha256=D5Xs847rIAMsI_fmJC27GSB0jIMGjE3VejpKvMTqncU,88717
5
5
  arelle/CntlrComServer.py,sha256=h1KPf31uMbErpxTZn_iklDqUMGFgQnjZkFkFjd8gtLQ,1888
6
6
  arelle/CntlrProfiler.py,sha256=2VQJudiUhxryVypxjODx2ccP1-n60icTiWs5lSEokhQ,972
7
7
  arelle/CntlrQuickBooks.py,sha256=BMqd5nkNQOZyNFPefkTeWUUDCYNS6BQavaG8k1Lepu4,31543
@@ -67,7 +67,7 @@ arelle/UITkTable.py,sha256=N83cXi5c0lLZLsDbwSKcPrlYoUoGsNavGN5YRx6d9XY,39810
67
67
  arelle/UiUtil.py,sha256=3G0xPclZI8xW_XQDbiFrmylB7Nd5muqi5n2x2oMkMZU,34218
68
68
  arelle/Updater.py,sha256=IZ8cq44Rq88WbQcB1VOpMA6bxdfZxfYQ8rgu9Ehpbes,7448
69
69
  arelle/UrlUtil.py,sha256=HrxZSG59EUMGMMGmWPuZkPi5-0BGqY3jAMkp7V4IdZo,32400
70
- arelle/Validate.py,sha256=3qZj-Kmbb3vTvc2klvmeTP01vS1EXql3fFXqQp8yZls,58788
70
+ arelle/Validate.py,sha256=cX1OA3JPiwmjNmxfecZc24GBW1qXdjcEEynJ9F1K7Zg,58764
71
71
  arelle/ValidateDuplicateFacts.py,sha256=L556J1Dhz4ZmsMlRNoDCMpFgDQYiryd9vuBYDvE0Aq8,21769
72
72
  arelle/ValidateFilingText.py,sha256=xnXc0xgdNiHQk0eyP7VSSpvw7qr-pRFRwqqoUb569is,54051
73
73
  arelle/ValidateInfoset.py,sha256=Rz_XBi5Ha43KpxXYhjLolURcWVx5qmqyjLxw48Yt9Dg,20396
@@ -125,7 +125,7 @@ arelle/XmlValidateConst.py,sha256=U_wN0Q-nWKwf6dKJtcu_83FXPn9c6P8JjzGA5b0w7P0,33
125
125
  arelle/XmlValidateParticles.py,sha256=Mn6vhFl0ZKC_vag1mBwn1rH_x2jmlusJYqOOuxFPO2k,9231
126
126
  arelle/XmlValidateSchema.py,sha256=6frtZOc1Yrx_5yYF6V6oHbScnglWrVbWr6xW4EHtLQI,7428
127
127
  arelle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- arelle/_version.py,sha256=34F-WgCaXY1j36DrZxBRdRZS8LLBVS06qbhNlb5StZA,708
128
+ arelle/_version.py,sha256=Ob4Yjv_aHEp_grPDRfpg4fr4W3Qb5_yliBYKjfPLi7w,708
129
129
  arelle/typing.py,sha256=PRe-Fxwr2SBqYYUVPCJ3E7ddDX0_oOISNdT5Q97EbRM,1246
130
130
  arelle/api/Session.py,sha256=kgSxS7VckA1sQ7xp0pJiK7IK-vRxAdAZKUo8gEx27s8,7549
131
131
  arelle/config/creationSoftwareNames.json,sha256=5MK7XUjfDJ9OpRCCHXeOErJ1SlTBZji4WEcEOdOacx0,3128
@@ -312,11 +312,11 @@ arelle/plugin/validate/DBA/rules/tm.py,sha256=ui9oKBqlAForwkQ9kk9KBiUogTJE5pv1Rb
312
312
  arelle/plugin/validate/DBA/rules/tr.py,sha256=4TootFjl0HXsKZk1XNBCyj-vnjRs4lg35hfiz_b_4wU,14684
313
313
  arelle/plugin/validate/EBA/__init__.py,sha256=x3zXNcdSDJ3kHfL7kMs0Ve0Vs9oWbzNFVf1TK4Avmy8,45924
314
314
  arelle/plugin/validate/EBA/config.xml,sha256=37wMVUAObK-XEqakqD8zPNog20emYt4a_yfL1AKubF8,2022
315
- arelle/plugin/validate/EDINET/Constants.py,sha256=1qZ9fhD3JSIHxysJ8iIFxmAL60L_g5UX7g7o3vIDX6k,1607
315
+ arelle/plugin/validate/EDINET/Constants.py,sha256=IkJ1R0ZQAs9kUXY8eB7e8azYlC4m500VILrQhniB5Q4,1949
316
316
  arelle/plugin/validate/EDINET/ControllerPluginData.py,sha256=2hMPxpL0vZqmzcuvPl9o4_g79ZOtJgLI1p_VRW2YYVk,7259
317
317
  arelle/plugin/validate/EDINET/DisclosureSystems.py,sha256=3rKG42Eg-17Xx_KXU_V5yHW6I3LTwQunvf4a44C9k_4,36
318
318
  arelle/plugin/validate/EDINET/ManifestInstance.py,sha256=o6BGlaQHSsn6D0VKH4zn59UscKnjTKlo99kSGfGdYlU,6910
319
- arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=2PEdDuOn9yIg-_Gf-fK8L6RFW3YVVEYy-7JU0n7VZtw,15433
319
+ arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=aM3OtB0X6NSHouFDut68pkLfe143rTW6nL6tIcI84D4,16092
320
320
  arelle/plugin/validate/EDINET/ReportFolderType.py,sha256=Q-9a-5tJfhK-cjY8WUB2AT1NI-Nn9cFtARVOIJoLRGU,2979
321
321
  arelle/plugin/validate/EDINET/Statement.py,sha256=0Mw5IB7LMtvUZ-2xKZfxmq67xF_dCgJo3eNLweLFRHU,9350
322
322
  arelle/plugin/validate/EDINET/UploadContents.py,sha256=IKQYl6lXYTfAZKLIDzRRGSRt3FXoL2Eldbx3Dh7T2I4,712
@@ -328,9 +328,9 @@ arelle/plugin/validate/EDINET/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
328
328
  arelle/plugin/validate/EDINET/rules/contexts.py,sha256=KPoyWfRaURvxoGVcWP64mTMTAKPMSmQSX06RClCLddw,7590
329
329
  arelle/plugin/validate/EDINET/rules/edinet.py,sha256=VYrDZaKbsQuQEvOY5F0Pv4Jzk9YZ4iETOkAFOggrhEY,12632
330
330
  arelle/plugin/validate/EDINET/rules/frta.py,sha256=N0YglHYZuLD2IuwE26viR2ViwUYjneBuMFU9vlrS0aQ,7616
331
- arelle/plugin/validate/EDINET/rules/gfm.py,sha256=Elyd0Vqooj_rC0yDWC8NneWCQ_Ckb9IZy1XCn7m1_IE,24389
331
+ arelle/plugin/validate/EDINET/rules/gfm.py,sha256=3kV7jahj_Y8GxwgjebUtnIrnDTbZEYEDfzokDTGcehc,25490
332
332
  arelle/plugin/validate/EDINET/rules/manifests.py,sha256=MoT9R_a4BzuYdQVbF7RC5wz134Ve68svSdJ3NlpO_AU,4026
333
- arelle/plugin/validate/EDINET/rules/upload.py,sha256=XVLL_txEoYFQznNI8bSjs41dMW9x7SRsj1f1aS0YU-4,35871
333
+ arelle/plugin/validate/EDINET/rules/upload.py,sha256=f9MLg7Dz9czsAHKE-SQHRlCe77AXWAPyp4RDeB0G8Rc,36818
334
334
  arelle/plugin/validate/ESEF/Const.py,sha256=JujF_XV-_TNsxjGbF-8SQS4OOZIcJ8zhCMnr-C1O5Ho,22660
335
335
  arelle/plugin/validate/ESEF/Dimensions.py,sha256=MOJM7vwNPEmV5cu-ZzPrhx3347ZvxgD6643OB2HRnIk,10597
336
336
  arelle/plugin/validate/ESEF/Util.py,sha256=QH3btcGqBpr42M7WSKZLSdNXygZaZLfEiEjlxoG21jE,7950
@@ -680,9 +680,9 @@ arelle/utils/validate/ValidationUtil.py,sha256=9vmSvShn-EdQy56dfesyV8JjSRVPj7txr
680
680
  arelle/utils/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
681
681
  arelle/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
682
682
  arelle/webserver/bottle.py,sha256=P-JECd9MCTNcxCnKoDUvGcoi03ezYVOgoWgv2_uH-6M,362
683
- arelle_release-2.37.54.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
684
- arelle_release-2.37.54.dist-info/METADATA,sha256=LMpvNRlAnrYIwHfxClG8zKapyKs6s17iAqYHgdwE8h4,9327
685
- arelle_release-2.37.54.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
686
- arelle_release-2.37.54.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
687
- arelle_release-2.37.54.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
688
- arelle_release-2.37.54.dist-info/RECORD,,
683
+ arelle_release-2.37.55.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
684
+ arelle_release-2.37.55.dist-info/METADATA,sha256=7zIMq7-ff7-wq1Vq8wfHYzjd4A_sMGZsPHuiIz2-nNY,9327
685
+ arelle_release-2.37.55.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
686
+ arelle_release-2.37.55.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
687
+ arelle_release-2.37.55.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
688
+ arelle_release-2.37.55.dist-info/RECORD,,